Hi everyone,
I’m trying to develop a dockable version of a QTabWidget, since I saw that pyqt
does not support it natively. Up to now I tried to realize it using the
QDockWidget class, here is some code which shows what I did:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class DockTabWidget(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.resize(1000, 700)
self.setTabPosition(Qt.AllDockWidgetAreas, QTabWidget.North)
self.dock_list = []
def AddComponent(self, component, label) :
d = QDockWidget(self.tr(label), self)
d.setAllowedAreas(Qt.AllDockWidgetAreas)
d.setWidget(component)
self.dock_list.append(d)
self.addDockWidget(Qt.LeftDockWidgetArea, d, Qt.Horizontal)
if len(self.dock_list) > 1 :
index = len(self.dock_list)-1
self.tabifyDockWidget(self.dock_list[-2], self.dock_list[-1])
if not hasattr(self, "tab_bar") :
self.tab_bar = self.findChildren(QTabBar)[0]
self.tab_bar.setTabsClosable(True)
self.tab_bar.setMovable(True)
def Test(self, index) :
print index
if __name__ == "__main__" :
import sys
a = QApplication(sys.argv)
dia = DockTabWidget()
dia.AddComponent(QWidget(), "t1")
dia.AddComponent(QWidget(), "t2")
dia.AddComponent(QWidget(), "t3")
dia.show()
a.exec_()
My problem is that the tabs of QtabBar cannot be used to drag away the pages
and I’m forced to use the title bar, which I would like to be removed. Can
anyone point me out if there is any way to achieve these goals (drag ffrom tabs
and remove title bar)? Alternatively, is there any other way to realize a
dockable QTabWidget?
Thanks in advance for your help!
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt