I've a QTabWidget
,其中包含不同高度的小部件(它们的宽度是固定的),但是,默认实现QTabWidget
选择最大的部件的高度作为自己的高度。
我想知道是否有一种(可能快速)的方法来改变大小QTabWidget
取决于其当前选项卡,以在显示较小选项卡时节省空间。
您可以设置显示的小部件的大小策略QSizePolicy::Preferred
和其他的QSizePolicy::Ignored
。在那通电话之后adjustSize
更新尺寸。例如,您可以连接currentChanged
的信号QTabWidget
到一个插槽:
connect(ui->tabWidget,SIGNAL(currentChanged(int)),this, SLOT(updateSizes(int)));
并在插槽中设置大小策略并相应调整大小:
void MainWindow::updateSizes(int index)
{
for(int i=0;i<ui->tabWidget->count();i++)
if(i!=index)
ui->tabWidget->widget(i)->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
ui->tabWidget->widget(index)->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
ui->tabWidget->widget(index)->resize(ui->tabWidget->widget(index)->minimumSizeHint());
ui->tabWidget->widget(index)->adjustSize();
resize(minimumSizeHint());
adjustSize();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)