我正在尝试实现自定义小部件层次结构:
QMainWindow
-> QFrame
-> MyWidget
-> QFrame
-> MySubWidget
这是 MyWidget 类的样子:
class MyWidget : public QWidget {
Q_OBJECT
public:
MyWidget(QWidget *parent = 0, ...);
...
public slots:
void SlotFunction(int i);
...
private:
MySubWidget *sub_w;
QFrame *sub_frame;
...
}
如果我尝试在 MyWidget 构造函数期间创建 MySubWidget,则所有 MySubWidget 元素都会按预期显示:
MyWidget::MyWidget (...) : QWidget(parent) {
...
sub_frame = new QFrame(this);
...
sub_w = new MySubWidget(sub_frame); // commented out on a runtime test
}
但是如果我尝试在运行时添加子部件,sub_frame 将保持空白。 IE。信号 react :
void MyWidget::SlotFunction(int i) {
sub_w = new MySubWidget(sub_frame); // update, repaint, show and hide methods aren't helphul
}
最佳答案
我知道这是一个老问题,但我遇到了一个非常相似的问题,结果是缺少对 QWidget::show() 的调用。也许这也是您的问题?
我的问题在这里:Dynamically add instance inherited from QWidget
干杯。
关于c++ - 在运行时添加自定义 QWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14060903/