本文最后更新于:5 个月前
保留现场
在新窗口中的构造函数中添加控件运行后却没有显示
探究原因
1 2 3 4 5 6 7 8 9 10
| #include<QMainWindow> QMainWindow::QMainWindow(QMainWindow*parent) : QMainWindow(parent), ui(new Ui::QMainWindow) { ui->setupUi(this); QPushButton* button_1 = new QPushButton("add"); QPushButton* button_1 = new QPushButton("del"); }
|
解决方法
方法1:给按钮控件设置父窗口:QWidget,并且把按钮添加到父窗口中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #include<QMainWindow> #include<QPushButton> #include<QHBoxLayout> QMainWindow::QMainWindow(QMainWindow*parent) : QMainWindow(parent), ui(new Ui::QMainWindow) { ui->setupUi(this); QWidget* w = new QWidget(); this->setCentralWidget(w); QHBoxLayout* hLayout = new QHBoxLayout(); QPushButton* button_1 = new QPushButton("add"); QPushButton* button_1 = new QPushButton("del"); hLayout->addWidget(button_1); hLayout->addWidget(button_2); w->setLayout(hLayout); }
|
方法2:手动指定父窗口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #include<QMainWindow> #include<QPushButton> #include<QHBoxLayout> QMainWindow::QMainWindow(QMainWindow*parent) : QMainWindow(parent), ui(new Ui::QMainWindow) { ui->setupUi(this); QPushButton* button_1 = new QPushButton("add"); QPushButton* button_1 = new QPushButton("del"); button_1->setParent(this); button_2->setParent(this); button_2->move(300,100); }
|