2016-02-25 66 views
1

我想创建一个使用Qt(PyQt5专门)的应用程序,它具有类似于界面的照片编辑器。更具体地讲,我想它有:构建使用Qt编辑器界面

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

Example Photo Editor Interface (Acorn)

这个想法是让工具栏和上下文窗口一直保持运行状态。用户然后打开一个或多个文档(例如照片编辑器示例中的图像)并使用工具栏中的选项来修改文档。

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

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

我打算主要在OSX上使用此应用程序,但也希望它在Windows和Linux上表现良好。

回答

0

QMenuBar有OSX明确支持有菜单栏像预期的那样:http://doc.qt.io/qt-5/qmenubar.html#qmenubar-on-os-x

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

至于如何有单独的窗口:任何Qt小部件将是一个顶级窗口,如果它没有父母,所以这是一个简单的方法来创建窗口。如果你想拥有父窗口(例如自动控制窗口堆叠顺序),那么有一个窗口标志。所以你不需要使用QDialog(不知道你是否暗示了你的问题)。

您想仔细阅读QWidget documentation以了解所有这些工作原理。

+0

对不使用主窗口拼接应用程序的最佳方式有何想法?注意Acorn屏幕截图,编辑器或上下文窗口都没有(X)按钮;退出应用程序的方式是通过文件菜单。我想以某种方式复制这个;就像有一个菜单栏,一个工具栏,但没有主窗口。 – jeremiahbuddha

+0

为什么你不想要主窗口? U可以创建mainWindow子类并隐藏关闭窗口按钮,U可以创建尽可能多的主窗口,使其成为dockwidget区域,以便在窗口/窗口之间擦除/删除图标以重新排列子工具。等等等等 – Dariusz