【问题标题】:How to generate program code from ui-forms?如何从 ui-forms 生成程序代码?
【发布时间】:2021-12-29 23:55:36
【问题描述】:

我有一个使用 Qt Designer 生成的 UI。它为我生成了这样的 XML 代码:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>ColorDialog</class>
 <widget class="QDialog" name="ColorDialog">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
   and etc

我想删除这个 UI 并通过 C++ 代码编辑视图,如下所示:

    for (auto button:m_buttonColorsList)
    {
        m_colorsLayout->addWidget(button);
    }

    m_mainGroupBox->setLayout(m_colorsLayout);

    m_mainLayout->addWidget(m_mainGroupBox);

    setLayout(m_mainLayout);

如何将现有表单转换为代码?

【问题讨论】:

  • 最简单的方法?使用 QMake。

标签: c++ qt user-interface qt-creator qt-designer


【解决方案1】:

如果要使用 .ui 信息生成代码,则必须使用uic 工具:

uic filename.ui -g cpp -o filename_ui.h

【讨论】:

    【解决方案2】:

    Qt 设计器生成此 XML,然后 QMake 使用该 XML 将其转换为实际代码。 但是里面没有你不能自己写的东西。

    实现您想要的最简单的方法是,简单地使用 Qt 已经为您提供的方法:使用设计器创建表单,在其上运行 QMake,然后查看生成的 .h 文件。

    整个代码(+ 一些额外内容)都在其中,可以在没有整个 ui-&gt; 业务的情况下复制到您的应用程序中。

    如果您无论如何都不想使用 QMake,则必须手动进行,但根据我的经验,最好不要为此查看 XML,而是自己完成整个布局。

    这有点麻烦,但绝对可行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-30
      • 2013-06-23
      • 2012-01-03
      • 2019-03-30
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      相关资源
      最近更新 更多