カスタムウィジェット階層を実装しようとしています:
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 は空白のままになります。すなわち信号反応:
void MyWidget::SlotFunction(int i) {
sub_w = new MySubWidget(sub_frame); // update, repaint, show and hide methods aren't helphul
}