在Qt4中,QApplication::mainWidget()变成了什么?

5
我正在将一个应用程序从Qt3移植到Qt4,需要一个Qt4替代QApplication :: mainWidget()的函数,该函数在Qt3中返回顶层窗口小部件。有人知道如何在Qt4中实现吗?
3个回答

3

从技术上讲,使用 NULL 初始化的任何小部件都是顶层小部件,因此 QApplication 不应假定其中一个比另一个更好。
我通常的做法是在某个地方保存“真正”的主要小部件的指针,即使是全局变量或单例,并在需要时引用它。


2

我认为topLevelWidgets()是最接近的。

编辑:

是的,Qt4增加了复杂性(和功能)。不再有应用程序范围内的MainWidget。可以创建并显示、隐藏和再次显示许多QMainWindow。虽然如此却是一件好事 :) 正如shoosh所注意到的,QT3的行为可以很容易地通过全局变量(yuck!)或QApplication子类来模拟。


是的,我看到了这个方法。但是它感觉像是朝着错误的方向迈出的一步,因为它增加了复杂性。这是目前唯一一种情况,让我觉得Qt3比Qt4更好,这也是我不得不问的原因。我将继续保持问题开放一段时间,但如果没有人提出更好的建议,我会接受你的答案。谢谢。 - Kristian
好的,你总是可以根据你的应用程序自己跟踪“主窗口小部件”。 - Eugene

1

我认为你所寻找的已被QMainWindow类替代,该类允许你设置一个setget一个中心小部件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接