C++ 将.ui文件添加到QT中的现有类

C++ 将.ui文件添加到QT中的现有类,c++,qt,qt5,qt-designer,C++,Qt,Qt5,Qt Designer,有人能告诉我如何在Visual Studio中将.ui文件添加到现有类中的步骤吗? 首先,我在Visual中添加了一个新项,然后选择了“QT对话框表单文件”选项,然后在QT Designer中创建了我想要的对话框表单 我的.h文件: (...) #include "ui_Serial.h" class Serial : public QWidget { Q_OBJECT public: Serial(QWidget *parent); ~Serial();

有人能告诉我如何在Visual Studio中将.ui文件添加到现有类中的步骤吗? 首先,我在Visual中添加了一个新项,然后选择了“QT对话框表单文件”选项,然后在QT Designer中创建了我想要的对话框表单

我的.h文件:

(...)
#include "ui_Serial.h"


class Serial : public QWidget
{
    Q_OBJECT

public:
    Serial(QWidget *parent);
    ~Serial();

    Ui::Serial *ui;
(...)
我的问题是,我无法使用设置ui功能:

Serial::Serial(QWidget *parent)
: QWidget(parent)
{
    serial = new QSerialPort(this);
    ui->setupUi(this);

}
我得到这个错误: 无法将参数1从“串行*”转换为“QDialog”*

我怎样才能通过那个考试? 有什么想法吗?
问候语

每个模板都有一个默认类,因为在生成.ui时,会嵌入类命令

  • 如果使用模板小部件,则类应该是
    QWidget
  • 如果使用底部带有按钮的模板对话框、右侧带有按钮的模板对话框、不带按钮的模板对话框,则类应为
    QDialog
  • 如果使用模板MainWindow,则类应该是
    QMainWindow
因此,我们在您的案例中得出结论,您应该使用从QDialog继承的类:

*.h

#include "ui_Serial.h"


class Serial : public QDialog
{
    Q_OBJECT

public:
    Serial(QWidget *parent=0);
    ~Serial();

    Ui::Serial *ui;
}
*.cpp

Serial::Serial(QWidget *parent):QDialog(parent)
{
    serial = new QSerialPort(this);
    ui->setupUi(this);

}

是的,非常感谢。如此简单的解决方案;p问候:)先生,如果我的回答说这有助于你解决问题,你为什么不把它标记为正确的呢?