Qt:如何使用 *.ui 文件中的代码创建的小部件

Qt: How can I use my widgets created with code in the *.ui file

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

  1. 一个是去 *.ui 文件并搜索元素并将其放在你想要的地方(视觉方式)。然后您可以使用 ui->nameOfLabel.
  2. 在您的代码中访问它
  3. 另一个将转到您的代码并像 QLabel codedLabel;
  4. 一样创建它

实际上我正在使用第二种方式(它更容易创建、显示和使用)但我的问题是:有什么方法可以让我在 *. ui 文件?

我想将它移动到屏幕中的 space,在这种情况下,通过视觉方式(但在中创建标签)对我来说会容易得多代码而不是 ui).

非常感谢。

当您编辑将要添加到的小部件的 .ui 文件时,无法在 Qt Designer 中看到从您的源代码在运行时创建并作为子部件添加到小部件的小部件。

但是,可能有一个替代方案(阅读您想要实现的目标:根据上下文是否存在一些子窗口小部件):

从 Qt Designer 中的 .ui 创建小部件并隐藏它 (QWidget::hide()) 甚至在运行时不需要时以编程方式删除它 (QLayout::removeWidget())。

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

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