python - 如何使 QDockWidgets 成为单独的窗口?
问题描述
我有一个带有 some 的 Qt 应用程序QDockWidgets
,它可以通过以下功能停靠和取消停靠:
DockWidgetFloatable
DockWidgetMovable
DockWidgetVerticalTitleBar
DockWidgetClosable
我想使用 Windows 的窗口布局管理器(比如使用停靠小部件和主应用程序的分屏)。但现在不可能,因为停靠的小部件仍然是主应用程序的子窗口。
我可以设置一个标志来使它们成为单独的窗口吗?
解决方案
标志 Qt::WindowFlagsflags Qt::WindowFlags - Qt::Window
表示该小部件是一个窗口,通常带有一个窗口系统框架和一个标题栏,而不管该小部件是否有父级。请注意,如果小部件没有父级,则无法取消设置此标志。
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_())
推荐阅读
- python - Pandas:返回值的第一个实例和最后一个实例的索引值
- android-studio - adb 可以识别但 Chrome 开发工具无法识别的 Android 设备
- asp.net - URL 重定向在 web.config 中不起作用
- reactjs - 限制登录用户访问 Gatsby.js 中的页面
- python - 将行号列表传递到 2 个数据框中,标记并添加到新数据框
- c# - 在根目录下保存 XML 数据
- angular - 使用具有静态方法的实用程序类对组件进行单元测试
- python - PyQt + 自定义 QML 对象:无法读取 null 的属性“x”
- python-3.x - 水平滚动条不滚动 tkinter
- ruby-on-rails - activeadmin中自定义页面上的CKEditor