1
我想在QT中列出一个工具按钮。工具按钮应出现在scollarea中。这个列表应该在点击一个按钮时出现。我已经完成了代码并且工作正常,我不得不按两次按钮才能让列表出现。这里是我的代码:必须推QPushbutton两次
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
find_btn.setParent(ui->centralWidget);
find_btn.setGeometry(480,250,130,132);
viewport.setLayout(&scrollLayout);
scrollArea.setParent(ui->centralWidget);
scrollArea.setGeometry(0,116,339,404);
scrollArea.setWidget(&viewport);
connect(&find_btn,SIGNAL(clicked()),this,SLOT(import()));
}
void MainWindow::import()
{
button.setCheckable(true);
button.setMinimumSize(317,60);
button2.setCheckable(true);
button2.setMinimumSize(317,60);
scrollLayout.addWidget(&button);
scrollLayout.addWidget(&button2);
viewport.adjustSize();
}
所以当我按下“find_btn”,用按钮scrollarea内应该会出现。此刻带有按钮的滚动条出现了,但是仅在我点击了两次“find_btn”之后。
我想我必须更新scrollarea或类似的东西。也许连接导致问题?任何人都可以帮忙吗?
嗯我试过了,但似乎没有任何工作。我注意到,当我删除viewport.adjustSize()时,我不必点击两次。但是,那么视口的大小是错误的。我通过调整大小来修复这个问题,但我觉得这不是最好的解决方案。 – Frank
您是否在adjustSize()调用后尝试调用'processEvents'? –
是仍然没有效果。我使用resize函数解决了问题。 – Frank