我正在尝试创建一个继承自QWidget的自定义窗口小部件。 问题是,当我将Q_OBJECT宏添加到我的自定义类时,窗口小部件不会显示(没有错误)。如果我删除宏运行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的新手,所以请保持简单的答案:)