gpt4 book ai didi

c++ - 使用 Qt Designer 将 QMainWindow 的角设置为属于停靠小部件区域 (QMainWindow::setCorner)

转载 作者:太空宇宙 更新时间:2023-11-04 11:32:58 27 4
gpt4 key购买 nike

嗯,主题。

我在桌面 Qt4 应用程序中使用停靠栏小部件,但我不喜欢停靠栏形式的布局。我希望右侧 停靠栏占据右上 角,默认情况下由顶部 停靠栏占据。

我用谷歌搜索(认真地!)我能用这个做什么,我找到了 an article其中描述了 QMainWindow::setCorner 的使用。这非常简单,最后我将以下代码添加到窗口的构造函数中:

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

它工作得很好,但我的问题来了。

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

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

第二个原因是 Qt Designer 中的表单看起来与我运行应用程序时得到的不同(当然,这种行为是完全合法和明显的)。

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

谢谢。

最佳答案

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

我个人觉得Qt Designer的工作就是帮助创建一个雪纺的基本主体,剩下的装饰留给逻辑代码,看个人喜好,所以你可以添加自己的味道,做成一个好吃的蛋糕。这就是我开始使用 Qt Creator 的原因,它允许我在内置的 UI 设计器和代码编辑器之间来回切换。因此,虽然我喜欢 Qt Designer 简化编程的方式,但我宁愿把它当作一个支持者。

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

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

关于c++ - 使用 Qt Designer 将 QMainWindow 的角设置为属于停靠小部件区域 (QMainWindow::setCorner),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23923782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com