我在Qt中有一个使用QWizard和QWizardPage类制作的项目。有两种创建窗口小部件的方法:标签:


一种是转到* .ui文件并搜索该元素,然后将其放在所需的位置(可视方式)。然后,您可以使用ui->nameOfLabel在代码上访问它。
另一个是转到您的代码并像QLabel codedLabel;一样创建它


实际上,我正在使用第二种方法(对于我来说,创建,显示和使用起来更容易),但是我的问题是:有什么方法可以在* .ui文件中看到我的标签codedLabel?

我想将其移动到屏幕上的某个空间,在这种情况下,通过视觉方式(但要在代码中而不是在ui中创建标签)对我来说要容易得多。

非常感谢。

最佳答案

在运行时从源代码创建的小部件,并以子级形式添加到小部件时,当您编辑将添加到小部件的.ui文件时,在Qt Designer中将无法看到它们。

但是,可能还有一种选择(阅读您要实现的目标:根据上下文显示是否存在某些子窗口小部件):

在Qt Designer中从.ui创建窗口小部件,并在运行时不需要时以编程方式将其隐藏(QWidget::hide())或什至将其删除(QLayout::removeWidget())。

如果您真正想看到它的真正原因是因为您想“将它移动到屏幕上的某个空间,在这种情况下,对我来说,通过视觉方式来实现它要容易得多”。然后,我建议您仅在Qt Designer中创建一个空的QWidget(或QLayout)(以图形方式:易于放置在所需位置),然后(以编程方式)将QLabel添加到其中(而不是将其添加到主要的顶层小部件):然后,它会放在您从Qt Designer工具确定的位置。

您不需要任何复杂的代码即可在特定位置以编程方式显示您的QLabel,只需选择合适的父级使其在正确的位置显示即可!

关于c++ - Qt:如何使用通过* .ui文件中的代码创建的窗口小部件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34048012/

10-11 22:51
查看更多