Я пытаюсь создать собственный виджет следующим образом:
device.h
class Device : public QWidget
{
Q_OBJECT
public:
explicit Device(QWidget *parent = 0);
};
device.cpp
Device::Device(QWidget *parent) :
QWidget(parent)
{
setGeometry(QRect(0, 0, 100, 100));
setStyleSheet(QString::fromUtf8("background: black;"));
raise();
setVisible(true);
qDebug() << "is visible: " << isVisible();
}
Конструктор пытается создать квадратвиджет с черным фоном.Но я ничего не вижу в своем MainWindow и выдает что-то вроде:
is visible: false
Кажется, я правильно создал объект устройства (ui->centralWidget
является родительским):
// MainWindow constructor
// device and button pointers defined in mainwindow.h
device = new Device(ui->centralWidget);
button = new QPushButton("Push me!", ui->centralWidget);
Я думаю, что могувидеть черный квадрат с кнопкой или только черный квадрат, перекрывающий кнопку.Но я вижу только кнопку без квадрата.
Мне не понятно даже, потому что я звоню setVisible(true)
и получаю isVisible()
как false в следующей строке.Но кнопка (тот же самый потомок QWidget) видна.Где разница?