【问题标题】:Where is the code correspoding to the changes made in qt designer located?在 qt 设计器中所做的更改对应的代码在哪里?
【发布时间】:2014-05-07 06:43:55
【问题描述】:

我正在使用: Qt 5.2.1、Qt Creator 3.2.1

使用 qt creator 中的设计器模式,我创建了两个小部件: 1.水平滑块 2. 旋转框

然后使用 Signal and Slots 编辑器,我执行了以下操作: 1.发件人:水平滑块 2.信号:值改变 3. 接收器:spinBox 4. 槽位:setValue

然后我构建并运行了该项目,它按我预期的方式运行。 但是在 qt 在左窗格中显示的文件中,这两个小部件没有对应的代码,尽管这些小部件在项目运行时工作正常。

我创建的小部件和信号槽对应的代码在哪里?

【问题讨论】:

    标签: c++ qt user-interface qt4 qt5


    【解决方案1】:

    通常在您的项目旁边有一个构建文件夹,其中包含自动生成的文件。

    例如,对于名称为MyForm.ui 的表单,它使ui_MyForm.h 具有与信号/插槽对应的connect 命令。

    【讨论】:

    • 当我使用设计器时,它只是将代码附加到 .ui 文件中,并且不能直接从 qt creator 工作区编辑(为此必须使用设计器模式)。另一种方法是在主 cpp 文件中手动写下代码。哪个是首选方法 - 使用 qt 设计器或自己编写代码?如果必须混合,我应该用什么比例做每件事?
    • 我更喜欢在我的 cpp 文件中编写所有信号/插槽,以便更好地控制并避免依赖代码生成器。
    • 谢谢,所以一个很好的组合是使用设计器添加小部件,然后在 cpp 文件中手动使用连接命令来控制它们的行为,同时在自动中拥有小部件的所有属性生成的文件?
    • 是的,我在我的项目中使用这种方式没有任何问题。
    【解决方案2】:

    编译器从表单生成代码。在我的例子中,我的表单名为dialog.ui,生成的文件名为ui_dialog.h。您可以在编译器构建代码的ui 文件夹中找到它。取决于您是否使用影子构建,这将是一个不同的地方。

    【讨论】:

    • 当我使用设计器时,它只是将代码附加到 .ui 文件中,并且不能直接从 qt creator 工作区编辑(为此必须使用设计器模式)。另一种方法是在主 cpp 文件中手动写下代码。哪个是首选方法 - 使用 qt 设计器或自己编写代码?如果必须混合,我应该用什么比例做每件事?
    • 它们实际上是两个不同的东西。您永远不需要担心表单生成的代码,您只需使用它在应用程序代码中提供的项目。例如,您将 ListView 添加到表单,然后编写 C++ 代码来创建模型并将其附加到 ListView。您唯一需要知道的是您将 ListView 命名为什么。没有真正的目标比例,只需使用最适合工作的工具即可。
    • 好的,谢谢。所以我应该只使用设计器添加小部件,其所有属性都由自动生成的代码处理,而连接命令应该在手动添加的 cpp 文件中以确定小部件的行为?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多