【问题标题】:Multiple Ui in Qt ProjectQt项目中的多个UI
【发布时间】:2013-11-03 03:33:56
【问题描述】:

如何在 Qt Creator 中制作多个 Ui 表单并链接它们? 我想在我的 mainwindow.ui 中有一个按钮,当它被触发时,我希望显示另一个 ui。 我该怎么做?

我有两个 Qt 表单类:

  1. 主窗口
  2. 主窗口2

我在 main.cpp 中尝试过这段代码:

#include "mainwindow.h"
#include "mainwindow2.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
MainWindow2 w2;
w2.show();

return a.exec();
}

但是会出现这个错误:

main.obj:-1: error: LNK2019: unresolved external symbol "public: virtual __thiscall MainWindow2::~MainWindow2(void)" (??1MainWindow2@@UAE@XZ) 在函数 _main 中引用

main.obj:-1: error: LNK2019: unresolved external symbol "public: __thiscall MainWindow2::MainWindow2(class QWidget *)" (??0MainWindow2@@QAE@PAVQWidget@@@Z) 在函数 _main

release\testtest.exe:-1: error: LNK1120: 2 unresolved externals

【问题讨论】:

标签: qt user-interface qt-creator


【解决方案1】:

看看slots,如果你想要基本的交互,可以使用 otherUI.show() / otherUI.hide()。

对于喜欢的问题:来自msdnhere

当您创建项目时,您选择了错误的应用程序 类型。当被问及您的项目是控制台应用程序还是 windows 应用程序或 DLL 或静态库,你做错了 选择了 Windows 应用程序(错误的选择)。

返回,重新开始,转到文件 -> 新建 -> 项目 -> Win32 控制台应用程序->命名您的应用程序->单击下一步->单击 应用程序设置。

对于应用程序类型,确保选择了控制台应用程序 (这一步是至关重要的一步)。

Windows 应用程序的主程序称为 WinMain,因为 DLL 是 称为 DllMain,对于 .NET 应用程序称为 Main(cli::array ^),而静态库没有 主要的。只有在控制台应用程序中,main 才称为 main

【讨论】:

  • 如何添加另一个 ui 并使用它。我尝试添加“Qt Designer Form Class”和“Qt Designer Form”,但我不知道如何定义它们。在课堂形式中,我试图显示otherui但发生链接错误。
  • 我添加了另一个类并试图在我的 main.cpp 中显示它,但再次发生链接错误
  • @Aidin.T 哪个错误?将其添加到您的问题中,并尽可能添加一些代码
  • 好的,我刚刚创建了一个新的 Qt 控制台应用程序,现在我可以添加 Qt Designer 表单类了吗?
  • @Aidin.T 不,控制台应用程序适用于另一种情况,在您的情况下,您应该创建一个 Qt 图形应用程序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多