我是Qt的新手,本书适用于Qt 4.
当我创建dialog.ui或mainwindow.ui文件时,它将它放在Folder表单下。我没有看到任何头文件或类似的东西。如何在main.cpp文件中引用dialog.ui呢?
获取错误ui使用未定义的类Ui :: MainWindow。
谢谢!
#include <QApplication>
#include <QDialog>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Ui::MainWindow ui;
QDialog *dialog = new QDialog;
ui.setupUi(dialog);
dialog->show();
return a.exec();
}
.pro文件:
#-------------------------------------------------
#
# Project created by QtCreator 2014-05-22T17:21:36
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitled7
TEMPLATE = app
SOURCES += main.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
自动生成的qt 5实现:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
答案 0 :(得分:0)
Ui::MainWindow
是一个私有类,只能由MainWindow
类访问。您无法在其他地方使用它(例如main()
)。
Ui::MainWindow
在 ui_mainwindow.h 中定义,在您编译应用时会自动生成。
要基于 mainwindow.ui 创建GUI,只需实例化MainWindow
对象:
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow mw;
mw.show();
return a.exec();
}
注意:
在Qt Creator中创建新的 Qt Widgets应用程序时, main.cpp 是自动的 为你生成的。你不需要自己写。
Qt的User Interface Compiler解析 mainwindow.ui 并生成 您的构建目录中的 ui_mainwindow.h 。它在您构建时自动运行 你的应用程序在Qt Creator中。您无需手动运行它。