python - Python PytQT5 - Windows 按钮移动到其他区域
问题描述
我正在寻求帮助,我正在使用 PyQT5 及其包含的 Web 引擎开发一个 Web 浏览器,但是,我遇到了一个问题,我似乎没有找到解决方法。基本上,我正在尝试将 Windows 按钮 - 最小化、更改窗口大小和关闭按钮移动到工具栏区域,就像 Google Chrome 一样。解释:
右侧的 Windows 按钮 - 在 Windows 框架上
现在,我删除了窗框,这 3 个按钮消失了(应该如此):
无窗框
现在基本上这就是我想要的,没有框架,但窗口按钮会移动到 Tab/TabBar 或 ToolBar。就像谷歌浏览器一样:
谷歌浏览器示例
我使用以下代码禁用窗口框架:
def __init__(self, parent=None, *args, **kwargs):
super(MainWindow, self).__init__(parent, Qt.FramelessWindowHint, *args, **kwargs)
但现在我不知道如何将这三个按钮移动到标签栏或工具栏。我发现我可以使用“标志”,特别是这三个:
Qt.WindowMinimizeButtonHint
Qt.WindowCloseButtonHint
Qt.WindowMaximizeButtonHint
现在我使用以下代码创建我的 Tab 小部件:
self.tabs = QTabWidget()
self.tabs.setDocumentMode(True)
self.tabs.tabBarDoubleClicked.connect(self.tab_open_doubleclick)
self.tabs.currentChanged.connect(self.current_tab_changed)
self.tabs.setTabsClosable(True)
self.tabs.tabCloseRequested.connect(self.close_current_tab)
self.setCentralWidget(self.tabs)
之后,我创建状态栏和导航栏:
self.status = QStatusBar()
self.setStatusBar(self.status)
navigation_bar = QToolBar('Navigation')
navigation_bar.setIconSize(QSize(24, 24))
self.addToolBar(navigation_bar)
之后,我将按钮添加到工具栏 - 停止、重新加载、后退和前进等。
解决方案
自己找到了答案,这有点不是我想要的东西,但它会做。
我禁用了带有标志的框架 - 然后禁用了我之前发布的 3 个标志。然后我在工具栏上创建了 3 个新按钮并将它们的图标更改为 windows 按钮,最后一步是添加回这 3 个按钮的功能,我用 2 个功能完成了这项工作。
解决了。
推荐阅读
- java - 如何在停止异步方法期间避免 java.nio.channels.ClosedByInterruptException 异常
- django - 如何获得模型字段的指定?
- apache-kafka - 设计 Kafka 消费者和生产者以实现可扩展性
- fortran - 以可移植方式获取 Fortran 中所有环境变量的列表?
- html - 如何删除嵌入的 YouTube 视频下方的区域?
- java - 比较表示为链表的两个数字
- javascript - 为什么 .then() 根本不执行我的 Promise?
- python - SymPy 无法求解三角表达式,但 Matlab 可以
- android - 如何使用 contentResolver 在 Android Q 中访问下载文件夹中的内容
- drupal-7 - 嘿,有人可以通过使用 node_load() 加载节点来提供帮助