代码之家  ›  专栏  ›  技术社区  ›  Joseph

Qt类与它的UI文件断开连接?

  •  0
  • Joseph  · 技术社区  · 15 年前

    不知怎的我 MainWindow 在我的qt项目中,已经与 .ui 我在Qt Designer中创建(我使用Qt Creator作为我的IDE)。实现文件包含以下两项:

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    

    但是如果我添加一个小部件(例如, lineEdit )在设计器中的UI中,如果我在实现中尝试对该小部件执行任何操作,就会得到一个错误(当然,自动完成不会检测到该小部件)。

    有人能帮忙吗?如果描述不够详细,请告诉我。谢谢!

    [ 编辑 ]
    这似乎是我从Qt4.6移动到Qt4.7的一个问题。在qt4.6中,为UI生成的头文件与项目放在同一目录中。在qt4.7中,它将它们放在build目录中。所以我更新了头文件,但我的程序链接到了错误的头文件。不幸的是,我现在似乎无法让它链接到正确的头文件。有什么想法吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Kaleb Pederson    15 年前

    假设一个默认的基于qmake的项目,当您创建一个新文件时,您可以选择是否将其添加到项目中。您可以通过“项目管理”对话框上的“添加到项目”复选框的形式选择此选项。

    要确保表单由qtcreator管理,请编辑项目的 .pro 文件以便它看到 .ui 通过将条目添加到 FORMS . 例如,如果您有一个表单, mainwindow.ui 和第二个 newdialog.ui 需要添加的,您可以使用以下任何选项进行更改:

    选项1:

    FORMS += mainwindow.ui \
        newdialog.ui
    

    选项2:

    FORMS += mainwindow.ui newdialog.ui
    

    选项3:

    FORMS += mainwindow.ui
    FORMS += newdialog.ui
    

    第一个选项由qtcreator 1.3.1使用。

    只要 ui 文件以表格形式注册,qmake生成的makefile应足以满足当前版本(qt-4.6或qt-4.7)。