0

QWidget から継承するカスタム ウィジェット クラスを作成しようとしています。問題は、カスタム クラスに Q_OBJECT マクロを追加すると、ウィジェットが表示されない (エラーがない) ことです。マクロ run qmake を削除してプロジェクトを再度実行すると、customwidget が表示されます。シグナルとスロットを追加したいので、Q_Object マクロを追加するのに慣れています。

Widget.h:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>


class Widget : public QWidget
{
    Q_OBJECT

    public:
        Widget(QWidget *parent = 0);

};

#endif // WIDGET_H

Widget.cpp:

#include "Widget.h"

Widget::Widget(QWidget *parent) : QWidget(parent) { }

main.cpp:

#include "Widget.h"

#include <QApplication>
#include <QWidget>
#include <QPoint>


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

    QWidget window_main;


    Widget *widget_steps = new Widget(&window_main);
    widget_steps->setFixedWidth(100);
    widget_steps->setFixedHeight(100);
    widget_steps->move(QPoint(0, 0));
    widget_steps->setStyleSheet("background-color: red");


    window_main.showMaximized();

    return a.exec();
}

Q_OBJECT マクロがないと左上隅に赤い四角形が表示されますが、マクロを追加しても表示されません。Qt 5.1 と Windows 7 を使用しています。

私はQtが初めてなので、答えを簡単にしてください:)

4

0 に答える 0