我剛開始學習pyqt ..當我在試驗tabbar我遇到這個..作爲一個最小的例子,我想在tab1中顯示一個按鈕和在tab2中的標籤。這裏就是我所做的tabbar奇怪的事情..幫我解決
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小部件運轉良好。無論如何,我無法看到小部件和標籤欄之間的連接。標籤欄選項卡是獨立創建的,因此也是tabwidget選項卡。這兩個選項卡標題是Tabbar單獨給出的。但是,如果我將索引設置爲o第一個選項卡與widgetForTab1一起顯示..
在我的第二個程序中,小部件和tabbar之間缺乏耦合事業的問題..
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分別..你能告訴我爲什麼發生這種情況?我該怎麼做才能解決這個問題?
感謝您的回覆..但是選擇tabbar的原因是它可以使用樣式表進行自定義(選擇選項卡,當前選項卡等)。爲了達到這些效果,除了使用tabbar外沒有其他選擇。 – Jeba 2009-12-18 09:43:48