在Qt中处理多个ui文件
Handling multiple ui files in Qt
我是新的Qt框架,我试图加载另一个UI文件时,SubmitClicked。文件名为Form。ui
//MainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "form.h"
#include <QtCore/QCoreApplication>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow:: SubmitClicked()
{
Form* f= new Form(this);
f->show();
f->raise();
f->activateWindow();
}
//Form.cpp
#include "form.h"
#include "ui_form.h"
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
}
Form::~Form()
{
delete ui;
}
这行不通!你能告诉我怎么了吗?
.ui文件只是存储GUI元素代码的地方。在大多数情况下,这些代码由QtDesigner生成。它在功能和形式上类似于Visual Studio的.rc文件和向导生成的GUI。这个文件要么在编译时加载(默认情况),要么在运行时通过QUiLoader
加载。如果你想在运行时动态生成UI,后者是你需要从qtuittools
在一个侧面说明类Form
不存在于Qt,所以这是一个类你做或打字错误。如果你只是想声明和显示一个窗口或对话框,那么从适当的基类派生并调用show()
或适当的方法。
例如,MainWindow
是您自己的用户定义类,派生自QMainWindow
:
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(application);
QApplication app(argc, argv);
MainWindow mainWin;
mainWin.show();
return app.exec();
}
编辑:啊,所以Form
是QWidget
类。您是否在Form
类中缺少Q_OBJECT
宏?您通常也只调用setupUi
一次,以便应用程序的主窗口加载资源,并且在用户定义子类的情况下,通常更容易以编程方式为类定义gui对象。
//Form.h
class Form : public QWidget
{
Q_OBJECT // this is needed for the MOC aka qmake
public:
Form(QWidget *parent);
virtual ~Form();
private:
QTextEdit m_text;
};
//Form.cpp
#include "form.h"
Form::Form(QWidget *parent) : QWidget(parent)
{
setCentralWidget(&m_text);
}
Form::~Form()
{
}
听起来好像你把类对象和ui命名空间文件搞混了。
相关文章:
- 如何处理使用.ui文件生成的.h文件
- 在 ui 文件中隐藏 QTabWidget 中的单个选项卡窗格?
- 由于多个 *.ui 文件而导致的多个Ui_Dialog定义?
- 如何在Qt Designer UI文件中清除QMainWindow的几何标记
- 将一个 UI 文件添加到另一个 UI 文件中
- 如何使用.UI文件在QT Creator中使用CMAKE制作GUI QT项目
- QT Creator不会更新.UI文件和设计器
- 为什么使用Qt Creator调整.ui文件会导致编译期间对.h文件进行更改
- 连接QT中的多个.UI文件
- 将 .ui 文件导入 Qt5 C++时出错"was not declared in this scope"
- QT在UI文件中恢复了我的更改
- 是否可以在Qt设计器中使用依赖项注入(对于.ui文件)
- QUiLoader:使用自定义小部件加载 .ui 文件的要求
- 在一个程序中处理多个QT Designer UI文件的最佳方法是什么?
- 如何将ui文件类中的按钮连接到其他类中的插槽
- 生成的头文件表单ui文件不可见
- 将 .ui 文件链接到C++
- 单击按钮时显示另一个 UI 文件
- Qt c++:来自多个.ui文件的动态GUI
- Qt使用UI文件和QUiLoader