类似于Google Chrome的PyQt标签页

3 投票
3 回答
3589 浏览
提问于 2025-04-16 03:38

我想让我的pyqt应用程序在菜单栏里有像谷歌浏览器那样的标签页 :)

有没有什么建议或者简单的例子可以参考一下?

我找到了一些相关链接:
- http://ivan.fomentgroup.org/blog/2009/03/29/instant-chrome/

3 个回答

2

你需要做以下几件事:

  • 去掉窗口的边框(使用无边框窗口提示)
  • 自己写代码来实现窗口的移动和调整大小
  • 在顶部插入一个标签栏,并添加关闭等按钮(或者创建一个框架来包含标签栏和按钮)

这就是在Webbie中所做的全部工作(你提供的链接) :)

2

如果我理解得没错的话,你只需要创建一个 QWindow,里面放一个 QTabBar 组件(而不是 QMenuBar),或者直接用 QTabWidget 作为你的主程序组件就可以了。

3

你需要使用 Qt.FramelessWindowHint 这个选项,然后自己创建最大化、最小化和关闭按钮,作为小部件添加进去。我有一个很不错的工具包,适合这类软件使用:http://traipse.assembla.com/spaces/ghostqt

在你的情况下,你应该重新定义 resizeEvent 这个事件,这样你就可以更改窗口的标志。如果窗口被最大化了,你就不用担心移动它了,但如果没有最大化,你可以去掉 Qt.FramelessWindowHint 这个标志,重新显示标题栏;就像 Chrome 浏览器那样。

这就是你想要的吗?

撰写回答