使用Qt Designer设置QMainWindow的角落属于停靠小部件区域(QMainWindow :: setCorner)

时间:2014-05-29 00:06:50

标签: c++ qt qt4 qt-designer

好吧,主题

我在桌面Qt4应用程序中使用dock小部件,但我不喜欢Dock形成的布局。我希望正确的基座占据右上角角,默认情况下该角落由顶部底座占用。

我用Google搜索(认真!)我该怎么办?我发现an article描述了QMainWindow::setCorner的用法。这很简单,我最终得到了以下代码,我已经添加到窗口的构造函数中了:

this->setCorner(Qt::TopRightCorner,Qt::RightDockWidgetArea);

它完美无缺,但这是我的问题。

代码似乎描述了应用程序的 logic 代码部分中的UI,我认为这不太好。在我的例子中,使用我使用Qt Designer创建的.ui文件来描述UI,因此UI事物与应用程序的主要逻辑事物分离。

问题是,有没有办法让Qt从.ui个文件中生成这样的代码?

第二个原因是Qt Designer中的表单与我运行应用程序时的表单不同(当然,这种行为完全合法且显而易见)。

如果我不清楚,请告诉我。

谢谢。

1 个答案:

答案 0 :(得分:1)

在qmake工作期间,Qt从ui_foo.h(XML文件格式)通过UI编译器(uic)生成C ++头文件foo.ui。换句话说,最终那些.ui文件将不可避免地成为 logic 代码的一部分,并且在代码编辑器中与这些UI实例进行交互是很正常的。

就个人而言,我觉得Qt Designer的工作是帮助创建一个基本的雪纺体,并将其余的装饰留给逻辑代码,取决于个人的胃口,这样你就可以添加自己的味道并使其成为一个好吃的蛋糕。这就是我开始使用Qt Creator的原因,它允许我在内置的UI设计器和代码编辑器之间来回切换。因此,虽然我喜欢Qt Designer如何简化编程,但我宁愿把它当作支持者。

我们只想说Qt Deisgner的能力是有限的。例如,几乎不可能只通过Qt Designer制作一个带有可点击按钮的表格: enter image description here

简而言之,寻求一种方法使Qt从.ui文件生成此类代码是不值得的,因为它取决于UI编译器的设计方式。只需编码吧!