Есть различия между тем, как заголовки tab-виджетов возвращаются в область заголовков при использовании QDockWidget:
1) Двойной клик по заголовку виджета превращает tabbed-window во floating-window
2) Двойной клик по заголовку floating-window возвращает заголовок на прежнюю позицию (порядок табов не меняется)
3) Перетаскивание окна обратно в dock-area перемещает заголовок в нулевую позицию (порядок табов меняется)
Как сделать так, чтобы порядок не менялся? Спасибо!
Python version is 3.1.1.final.0
Qt version is 4.5.3
PyQt version is 4.6.2
Вот примерчик:
from PyQt4 import Qt as qt
import sys
app = qt.QApplication(sys.argv)
mw = qt.QMainWindow()
mw.setWindowState(qt.Qt.WindowMaximized)
mw.setTabPosition(qt.Qt.LeftDockWidgetArea,qt.QTabWidget.North)
mw.dockwidgets = []
for i in range(5):
dw = qt.QDockWidget(str(i+1))
dw.setWidget(qt.QTextEdit("""
1) Double-clicking dock widget caption converts tabbed window to floating window.<br>
2) Double-clicking floating window caption returns tab caption to it's previous position (<b>tab order does not change</b>)<br>
3) Dragging window back to tabbed widgets returns tab caption to zero-position (<b>tab order changes</b>)<br>
How do I make order not to change? Thank you!<br>
Python version is %s<br>
Qt version is %s<br>
PyQt version is %s<br>
""" % (("%s."*5)[0:-1] % tuple(sys.version_info), qt.qVersion(),qt.PYQT_VERSION_STR)))
mw.dockwidgets.append(dw)
mw.addDockWidget(qt.Qt.LeftDockWidgetArea, mw.dockwidgets[i])
if i > 0: mw.tabifyDockWidget(mw.dockwidgets[i-1],mw.dockwidgets[i])
mw.show()
res = app.exec_()
sys.exit(res)