0
我試圖使一個標籤Widget與自定義選項卡欄移動。該程序工作正常,如果我沒有繼承QTabBar
和setMovable(True)
,但我需要訪問QTabBar
提供的mouseDoubleClickEvent
子分類。當你運行程序時,一切都會運行,直到你嘗試用鼠標移動一個標籤爲止。我覺得我已經嘗試了所有可能的setMovable
的組合,我可以想到但沒有任何工作。難道我做錯了什麼?pyQt4 QTabWidget setMovable與自定義QTabBar崩潰
使用:
蟒蛇V2.7.2
PyQt4的v4.8.5
和噁心的Windows XP
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
class Main(QWidget):
def __init__(self, parent=None):
super(Main, self).__init__(parent)
self.widgetBox = QHBoxLayout(self)
self.tabs = CTabWidget()
self.widgetBox.addWidget(self.tabs)
self.setLayout(self.widgetBox)
class CTabWidget(QTabWidget):
def __init__(self, parent=None):
super(CTabWidget, self).__init__(parent)
self.tabBar = CTabBar(self)
self.tabBar.addTab("Foo")
self.tabBar.addTab("Bar")
self.setTabBar(self.tabBar)
self.setTabPosition(QTabWidget.West)
self.setMovable(True)
class CTabBar(QTabBar):
def __init__(self, parent=None):
super(CTabBar, self).__init__(parent)
self.setMovable(True)
def addTab(self, string):
super(CTabBar, self).addTab(QString(string))
def mouseDoubleClickEvent(self, event):
print "Change name"
class Run(object):
def __init__(self):
app = QApplication(sys.argv)
app.setStyle(QStyleFactory.create("plastique"))
main = Main()
main.show()
sys.exit(app.exec_())
Run()