Python PyQT5 - Windows 按钮移动到其他区域

Posted

技术标签:

【中文标题】Python PyQT5 - Windows 按钮移动到其他区域【英文标题】:Python PytQT5 - Windows Buttons move to other area 【发布时间】:2018-08-10 10:45:40 【问题描述】:

我正在寻求帮助,我正在使用 PyQT5 及其包含的网络引擎开发一个网络浏览器,但是,我遇到了一个问题,我似乎没有找到解决方法。基本上,我正在尝试将 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)

之后我向工具栏添加按钮 - 停止、重新加载、后退和前进等。

【问题讨论】:

【参考方案1】:

我自己找到了答案,这有点不是我想要的东西,但它会做。

我禁用了带有标志的框架 - 然后禁用了我之前发布的 3 个标志。然后我在工具栏上创建了 3 个新按钮,并将它们的图标更改为 windows 按钮,最后一步是添加回这 3 个按钮的功能,我用 2 个功能完成了。


已解决。

【讨论】:

以上是关于Python PyQT5 - Windows 按钮移动到其他区域的主要内容,如果未能解决你的问题,请参考以下文章

python pyqt5 按钮 QPushButton

标签和按钮未出现 PyQt5,Python 3 [关闭]

在 Python 中使用 PyQt5 创建后退按钮

如何在 PyQt5 GUI python 中单击按钮时绘制方形图

如何在 python 中使用 pyqt5 显示 2 个按钮和 2 个标签?

如何在 windows python 上安装 Pyqt5