我QDialog
在设计器中创建了一个带有QFrame
testFrame 的设计器,我已经添加了一个QHBoxLayout
,并且在创建并显示整个东西之后的某个时刻,我试图以编程方式创建一个新的小部件,并将其QFrame
作为父级。无论我尝试什么新小部件都不会显示:
init() 方法结束:
QBoxLayout *testFrameLayout = new QHBoxLayout(this->testFrame); //QT3 docs use QBoxLayout pointer when creating QHBoxLayout
在事件期间(例如,按下了单独的按钮)
testButton = new QPushButton(this->testFrame);
testButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed, false);
testButton->setMaximumWidth(50);
testButton->setMaximumHeight(50);
testButton->setMinimumWidth(50);
testButton->setMinimumHeight(50);
testFrameLayout->addWidget(testButton);
我通过不同的小部件、容器类(例如QGrid
,我不必管理任何布局的东西)、调用 update()/repaint()(在 testFrame、testButton、对话框本身)等,无论我尝试什么它都可以得到这种行为在 init() 中完成时,但如果在显示对话框后完成,则不会。我一定错过了一些东西,所以任何帮助将不胜感激!
注意:我正在做一个使用 Qt 3 的非常大的项目,因此解决方案必须与此版本兼容。