Qt子类化ui表单显示一个空白窗口

时间:2017-11-30 20:37:09

标签: c++ qt qtwidgets

我有一个qt .ui表单,我正在尝试使用他们网站上描述的子类化方法在程序中使用它。但是,当我运行程序时,我只是得到一个空窗口。

子类标题:

#ifndef HOMEPAGE_H
#define HOMEPAGE_H
#include "ui_homepage.h"

class HomePage : public QWidget, public Ui::HomePage
{
public:
    HomePage(QMainWindow* window);
};

#endif // HOMEPAGE_H

子类cpp文件:

#include "homepage.h"

HomePage::HomePage(QMainWindow* window)
{
    setupUi(window);
}

程序文件:

#include <QApplication>
#include "homepage.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QMainWindow *window = new QMainWindow();

    HomePage homepage(window);
    homepage.show();

    return app.exec();
}

1 个答案:

答案 0 :(得分:3)

应该是这样的:

HomePage::HomePage(QMainWindow* window) : QWidget(parent)
{
    setupUi(this);
}

你在父母那里打电话给setupUi

如果您要使用信号和插槽,我也会添加Q_OBJECT宏。

class HomePage : public QWidget, public Ui::HomePage
{
    Q_OBJECT
public:
    HomePage(QMainWindow* window);
};

另外,我会在showHomePage上致电QMainWindow

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QMainWindow *window = new QMainWindow();

    HomePage homepage(window);
    homepage.show();
    window->show();

    return app.exec();
}