以下是我可以提出的最小示例。
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *vLayout = new QVBoxLayout(this);
QGroupBox *gb = new QGroupBox;
// MyGroupBox *gb = new MyGroupBox;
vLayout->addWidget(gb);
QPushButton *btB = new QPushButton;
vLayout->addWidget(btB);
}
上面的代码产生上面的图像,它只是一个组框和一个垂直布局的按钮。
如果我将
QGropBox
替换为MyGroupBox
,则不再显示。下面的代码产生下面的图像。Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QVBoxLayout *vLayout = new QVBoxLayout(this);
// QGroupBox *gb = new QGroupBox;
MyGroupBox *gb = new MyGroupBox;
vLayout->addWidget(gb);
QPushButton *btB = new QPushButton;
vLayout->addWidget(btB);
}
其中
mygroupbox.h
(.cpp文件中的构造函数主体为空):#include <QWidget>
class MyGroupBox : public QWidget
{
Q_OBJECT
public:
explicit MyGroupBox(QWidget *parent = 0);
signals:
public slots:
};
为什么组框未显示在其中?如何使它出现?
最佳答案
这就是为什么它不出现的原因:
class MyGroupBox : public QWidget
您的“组框”基本上只是一个
QWidget
。而是从QGroupBox
继承。