Я только начал изучать pyqt .. Когда я экспериментировал с панелью вкладок, я столкнулся с этим .. В качестве минимального примера я хочу показать кнопку на tab1 и метку на tab2 .. Вот что я сделал
from PyQt4 import QtGui
class Ui_TabWidget(QtGui.QTabWidget):
def __init__(self,parent=None):
QtGui.QTabWidget.__init__(self,parent)
self.setObjectName("TabWidget")
self.resize(400, 300)
self.setWindowTitle(QtGui.QApplication.translate("TabWidget", "TabWidget", None, QtGui.QApplication.UnicodeUTF8))
#Creating the tabbar
self.tabBar=QtGui.QTabBar(self)
#Adding the first tab
self.tabBar.addTab("tab1")
self.tabBar.setTabText(0,"TAB1")
#The widget intended for tab1
self.widgetforTab1=QtGui.QWidget()
self.addTab(self.widgetforTab1,"")
self.buttonForTab1=QtGui.QPushButton(self.widgetforTab1)
self.buttonForTab1.setText("Button in Tab1")
#Adding the second Tab
self.tabBar.addTab("tab2")
self.tabBar.setTabText(1,"TAB2")
#The widget intended for tab2
self.widgetForTab2=QtGui.QWidget()
self.addTab(self.widgetForTab2,"")
self.labelForTab2=QtGui.QLabel(self.widgetForTab2)
self.labelForTab2.setText("Label in Tab2")
#Adding the tabbar to the tabwidget
self.setTabBar(self.tabBar)
self.tabBar.setMovable(True)
self.setCurrentIndex(0)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
ui = Ui_TabWidget()
ui.show()
sys.exit(app.exec_())
В приведенной выше программе виджет, предназначенный для tab1 и tab2, функционировал хорошо. В любом случае я не вижу связи между виджетом и панелью вкладок. Вкладка панели вкладок создается независимо, и поэтому вкладка вкладок. Оба имеют заголовки вкладок, которые показаны только для панели вкладок. Но если я установил индекс как o, то отобразится первая вкладка вместе с widgetForTab1 ..
Во второй программе отсутствие связи между виджетом и панелью вкладок является причиной проблемы.
from PyQt4 import QtGui
class Ui_TabWidget(QtGui.QTabWidget):
def __init__(self,parent=None):
QtGui.QTabWidget.__init__(self,parent)
self.setObjectName("TabWidget")
self.resize(400, 300)
self.setWindowTitle(QtGui.QApplication.translate("TabWidget", "TabWidget", None, QtGui.QApplication.UnicodeUTF8))
#Creating the tabbar
self.tabBar=QtGui.QTabBar(self)
#Adding the first tab
self.tabBar.addTab("tab1")
self.tabBar.setTabText(0,"TAB1")
#Adding the second Tab
self.tabBar.addTab("tab2")
self.tabBar.setTabText(1,"TAB2")
self.tabBar.setMovable(True)
#Adding the tabbar to the tabwidget
self.setTabBar(self.tabBar)
#The widget intended for tab1
self.widgetforTab1=QtGui.QWidget()
self.addTab(self.widgetforTab1,"")
self.buttonForTab1=QtGui.QPushButton(self.widgetforTab1)
self.buttonForTab1.setText("Button in Tab1")
#The widget intended for tab2
self.widgetForTab2=QtGui.QWidget()
self.addTab(self.widgetForTab2,"")
self.labelForTab2=QtGui.QLabel(self.widgetForTab2)
self.labelForTab2.setText("Label in Tab2")
self.setCurrentIndex(0)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
ui = Ui_TabWidget()
ui.show()
sys.exit(app.exec_())
Вывод для второй программы был ужасным. Я получил четыре с первыми двумя вкладками без текста вкладки, и у вкладок были кнопка в Tab1, метка в Tab2, метка в Tab2 и метка в Tab2 соответственно .. Можете ли вы сказать мне почему это происходит ??? Что я должен сделать, чтобы решить эту проблему ???