如何将 QDockWidgets 分开 windows?
How to make QDockWidgets as separate windows?
我有一个带有一些 QDockWidgets
的 Qt 应用程序,可以使用这些功能停靠和取消停靠:
DockWidgetFloatable
DockWidgetMovable
DockWidgetVerticalTitleBar
DockWidgetClosable
我想使用 Windows 的 window 布局管理器(比如使用停靠小部件和主应用程序的分屏)。但现在不可能了,因为停靠的小部件仍然是主应用程序的子 windows。
有没有我可以设置的标志使它们分开windows?
flags Qt::WindowFlagsflags Qt::WindowFlags - Qt::Window
Indicates that the widget is a window, usually with a window system frame and a title bar, irrespective of whether the widget has a parent or not. Note that it is not possible to unset this flag if the widget does not have a parent.
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Dockdemo(QMainWindow):
def __init__(self, parent=None):
super(Dockdemo, self).__init__(parent)
self.setWindowTitle("Dock demo")
self.setCentralWidget(QTextEdit())
items = QDockWidget("Dockable", self, flags=Qt.Window) # flags=Qt.Window
# items.setGeometry(650, 130, 300, 200)
items.show() # +++
listWidget = QListWidget()
listWidget.addItem("item1")
listWidget.addItem("item2")
listWidget.addItem("item3")
items.setWidget(listWidget)
items.setFloating(False)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Dockdemo()
ex.show()
sys.exit(app.exec_())
我有一个带有一些 QDockWidgets
的 Qt 应用程序,可以使用这些功能停靠和取消停靠:
DockWidgetFloatable
DockWidgetMovable
DockWidgetVerticalTitleBar
DockWidgetClosable
我想使用 Windows 的 window 布局管理器(比如使用停靠小部件和主应用程序的分屏)。但现在不可能了,因为停靠的小部件仍然是主应用程序的子 windows。
有没有我可以设置的标志使它们分开windows?
flags Qt::WindowFlagsflags Qt::WindowFlags - Qt::Window
Indicates that the widget is a window, usually with a window system frame and a title bar, irrespective of whether the widget has a parent or not. Note that it is not possible to unset this flag if the widget does not have a parent.
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Dockdemo(QMainWindow):
def __init__(self, parent=None):
super(Dockdemo, self).__init__(parent)
self.setWindowTitle("Dock demo")
self.setCentralWidget(QTextEdit())
items = QDockWidget("Dockable", self, flags=Qt.Window) # flags=Qt.Window
# items.setGeometry(650, 130, 300, 200)
items.show() # +++
listWidget = QListWidget()
listWidget.addItem("item1")
listWidget.addItem("item2")
listWidget.addItem("item3")
items.setWidget(listWidget)
items.setFloating(False)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Dockdemo()
ex.show()
sys.exit(app.exec_())