Per*_*-lk 4 c++ size qt tabs qtabwidget
我有一个QTabWidget包含不同高度的小部件(它们的宽度是固定的),但是,默认实现QTabWidget选择最大小部件的高度作为自己的高度.
我想知道是否有(可能的快速)方法来改变QTabWidget其当前选项卡的大小,以便在显示较小的选项卡时节省空间.
您可以设置显示在窗口小部件的大小政策QSizePolicy::Preferred和其他的人来QSizePolicy::Ignored.之后调用adjustSize更新大小.例如,您可以将currentChanged信号连接QTabWidget到插槽:
connect(ui->tabWidget,SIGNAL(currentChanged(int)),this, SLOT(updateSizes(int)));
Run Code Online (Sandbox Code Playgroud)
并设置尺寸政策并相应地调整尺寸:
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();
}
Run Code Online (Sandbox Code Playgroud)