使用Qt构建照片编辑器界面

时间:2016-02-25 21:01:59

标签: qt pyqt

我想创建一个使用Qt(特别是PyQt5)的应用程序,它有一个像界面一样的照片编辑器。更具体地说,我希望它有:

  • 没有主窗口
  • 自由浮动工具栏
  • 自由浮动上下文窗口
  • 启动对话框
  • 编辑窗口

Example Photo Editor Interface (Acorn)

我们的想法是在应用程序运行时保持工具栏和上下文窗口的持久性。然后,用户打开一个或多个文档(例如照片编辑器示例中的图像),并使用工具栏中的选项修改文档。

我的第一个问题是;这种类型的应用程序界面是否具有特定名称,类似于MDI或SDI?我一直在寻找"照片编辑界面"以及它的变化,但是还没有能够找到似乎达到标记的搜索字符串。例如,我试过用Qt"构建照片编辑器类型界面。但它并没有产生任何有用的东西。

我的第二个问题是,构建一个不会产生主窗口的Qt应用程序的最佳方法是什么?看起来我可以将各种各样的对话组合在一起以实现这一点,但我真的想要使用QMainWindow的许多功能(工具栏,菜单,应用程序的顶级管理)。有没有办法启动QMainWindow,显示菜单和工具栏,但是抑制主窗口?

我计划主要在OSX上使用这个应用程序,但也希望它在Windows和Linux上运行良好。

1 个答案:

答案 0 :(得分:0)

QMenuBar明确支持OSX使菜单栏按预期运行:http://doc.qt.io/qt-5/qmenubar.html#qmenubar-on-os-x

我认为它也适用于Ubuntu的Unity,它试图有类似的风格,但可能有一些细节你需要照顾。其他桌面应该按预期工作。

关于如何使用单独的窗口:如果没有父窗口,任何Qt窗口小部件都将是顶级窗口,因此这是创建窗口的简单方法。如果你想拥有父窗口(例如自动控制窗口堆叠顺序),那么就有一个窗口标志。因此,您不需要使用QDialog(不确定您是否暗示在您的问题中)。

您想仔细阅读QWidget documentation以了解这一切是如何运作的。