我用designal设计的界面,想实现:点击一个按钮其中一个窗口就消失,再点击一下就显示出来。
我用的代码如下:
void MainWindow::on_toolButton_clicked(bool checked)
{
if(checked)
{
ui->horizontalLayout->removeItem(ui->verticalLayout);
ui->tableView2->hide();
ui->tableView1->hide();
ui->toolButton->setIcon(QIcon(":/new/prefix1/images/right.ico"));
qDebug()<<ui->graphicsView->geometry();
}else
{
ui->horizontalLayout->insertLayout(0,ui->verticalLayout,176);
ui->tableView2->show();
ui->tableView1->show();
ui->toolButton->setIcon(QIcon(":/new/prefix1/images/left.ico"));
}
}
结果:
debug下跟我想要的结果一模一样,release下窗口消失后其他窗口(两个tableView右边有一个GraphicsView)不跟着自适应变化了,觉得很奇怪,release还有这样的问题。求大神指点下。有没有什么解决办法
------最佳解决方案--------------------
简单的例子的源工程,便于大家快速定位你的错误。
------其他解决方案--------------------
designer中 horizontalLayout 是否做过自动适应大小的那个操作?就是可以让其随界面大小而发生变化的大小。
建议上源代码。
------其他解决方案--------------------
resize()
sizeHint()
两个配合用一下,在显示出来之前
------其他解决方案--------------------
码了快一年的工程...有点多。我只能把有关的代码弄上来
------其他解决方案--------------------
能具体说下是哪个函数么,我在文档里貌似没发现,可能是我英语太水了
------其他解决方案--------------------
没用的
------其他解决方案--------------------
我发现了问题的所在:
我重写了resizeEvent。
我把重写resize的代码注释掉就好了,应该QLayout对他的resizeEvent做了什么,我一重写就覆盖掉原来的了,所以就不行。但是为什么debug下没问题,release就有问题了。
我现在改怎么做才好呢
------其他解决方案--------------------
查看Qt它的源代码