c++ - QTabWidget 大小取决于当前 Tab

标签 c++ qt tabs size qtabwidget

我有一个QTabWidget,它包含不同高度的小部件(它们的宽度是固定的),但是,QTabWidget 的默认实现选择最大的小部件高度作为自己的高度高度。

我想知道是否有一种(可能快速)方法可以根据其当前选项卡更改 QTabWidget 的大小,以便在显示较小的选项卡时节省空间。

最佳答案

您可以将显示的小部件的大小策略设置为QSizePolicy::Preferred,将其他的设置为QSizePolicy::Ignored。之后调用 adjustSize 来更新尺寸。例如,您可以将 QTabWidgetcurrentChanged 信号连接到插槽:

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();
}

关于c++ - QTabWidget 大小取决于当前 Tab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29128936/

相关文章:

c++ - 使用 STRCPY 将二维字符数组复制到另一个二维数组中

c++ - 在 Windows 控制台应用程序中输出 unicode 字符串

python - 在 Linux 上安装 OPC/UA 客户端

javascript - 如何检测特定 localStorage 变量的内容何时在浏览器选项卡之间发生变化?

C++ 词法分析器

c++ - 如何从阻塞上下文访问基于类的参与者的状态(C++ 参与者框架)

c++ - QThread : If there is no run() implemented, 在等待信号时它做了什么?

Qt:使用样式表设置背景图像不适用于资源

JavaScript 显示/隐藏选项卡

javascript - Greasemonkey 获取所有打开的标签页的名称