Qt4 如何调整QTabWidget的大小?

Qt4 如何调整QTabWidget的大小?,qt4,qt4.8,qtabwidget,Qt4,Qt4.8,Qtabwidget,我的程序执行计算并输出一些示意图,绘制到标签上(使用QPixmap)。我在每个选项卡上显示一个标签 当下一次计算完成并且图形变小时,我希望选项卡的大小也减小。但事实并非如此。选项卡大小保持不变 我首先使用removeTab()删除所有以前的选项卡,然后创建新选项卡。当然,唯一没有删除的是QTabWidget本身 从小图形开始时,选项卡大小会随着较大图形的增加而增加。但反过来却不行 我怎样才能解决这个问题?以下代码不起作用: layout_tabs = new QTabWidget; layout

我的程序执行计算并输出一些示意图,绘制到标签上(使用
QPixmap
)。我在每个选项卡上显示一个标签

当下一次计算完成并且图形变小时,我希望选项卡的大小也减小。但事实并非如此。选项卡大小保持不变

我首先使用
removeTab(
)删除所有以前的选项卡,然后创建新选项卡。当然,唯一没有删除的是
QTabWidget
本身

从小图形开始时,选项卡大小会随着较大图形的增加而增加。但反过来却不行

我怎样才能解决这个问题?以下代码不起作用:

layout_tabs = new QTabWidget;
layout_tabs->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
我使用的是QT-4.8.4。

在切换到较小的标签后,您(用户)能否使用鼠标手动调整窗口的大小

如果是这样,可能发生的情况是父窗口小部件(即窗口)已调整大小以容纳较大的子窗口小部件。当较小的标签出现在大标签之后时,QTabWidget仍将占用与其父级相同的空间,除非优先选择布局继承权中相同级别的另一个小部件。因为父窗口没有变小,QTabWidget也不会变小

因此,在移除选项卡之后,尝试调整父窗口小部件(QMainWindow或其他什么)的大小,选项卡小部件应该随之调整。在Qt中,收缩通常来自上方,而扩张可以来自上方或下方。像这样的东西可能有用(未经测试)


编辑请注意,这不会删除您删除的选项卡,因此您需要自己删除它,例如我刚才添加的代码片段,因为删除的选项卡不再有父选项卡。

谢谢您的回答!是的,我可以用鼠标调整窗口的大小:-)为什么我没有想到这一点。好的,我将尝试updategeometry()并告诉您是否成功。一个问题是我将我的qtabwidget放入qdockwidget中。当我只做布局时,tabs=newqtabwidget;一切都很好。但是当我的主窗口关闭时,选项卡不会关闭。通过将一个小部件传递给其构造函数或通过布局将小部件放置在另一个小部件中,确保您
new
的每个小部件都有一个
QObject
父部件。QObject,包括QWidgets及其子对象,将删除其析构函数中的所有子对象。另请参阅我对的新评论。
while(layout_tabs->count() > 0)
{
    QWidget* removedtab = layout_tabs->widget(0);
    layout_tabs->removeTab(0); //removeTab() doesn't delete the widget
    removedtab->deleteLater(); //so you have to delete it yourself
}
layout_tabs->updateGeometry();
mainwindow->resize(mainwindow->minimumSize());