当添加子选项卡时,如何使 qtabwidget 实例自动调整大小?

Posted

技术标签:

【中文标题】当添加子选项卡时,如何使 qtabwidget 实例自动调整大小?【英文标题】:How do i cause a qtabwidget instance to automatically resize when child tabs are added to it? 【发布时间】:2009-05-09 16:01:26 【问题描述】:

我试图让 QTabWidget 在添加子项时自动调整大小以适合子选项卡,但无法这样做。我使用 Qt Designer 创建了一个表单,并使用如下单一继承方法继承了它。

class MyWidget : public QWidget

    Q_OBJECT

public:
    MyWidget(QWidget *parent = 0);
private:
    Ui::MyForm ui;
;

我有一个 QTabWidget,我正在使用 addTab() 将对象的实例添加到我的 QTabWidget。当我显示 QTabWidget 时,我注意到它没有调整大小以适应 MyWidget 实例。我需要做些什么来确保 QTabWidget 实例自动调整大小?

【问题讨论】:

【参考方案1】:

在设计器中,确保向小部件添加布局。单击小部件的背景,以便在应用布局时将其应用于整个小部件。诀窍是构建表单的基础(父)小部件需要布局,而不仅仅是表单中的项目。

网格通常很容易使用。但有时其他的更好。 Designer 使用起来可能很棘手,需要一段时间才能习惯。基本上每个小部件都应该应用一个布局。如果你不这样做,奇怪的事情就会发生。

【讨论】:

【参考方案2】:

我相信这是 Creator 的错误(至少对于 V4.7.4 开源)。 我的解决方案如下。

不要在主项目中创建 QTabWidget 对象。

独立创建(通过创建Qt-> Form-class)。

然后,将 3 个文件(.h、.cpp、.ui)复制到项目中,并添加到项目中。

结果是:它调整大小作为主窗口调整大小。

【讨论】:

【参考方案3】:

要将任何小部件放入其父小部件中,您需要使用特定的布局(网格、水平、垂直等)。

【讨论】:

以上是关于当添加子选项卡时,如何使 qtabwidget 实例自动调整大小?的主要内容,如果未能解决你的问题,请参考以下文章

避免 QTabWidget 中的重复选项卡

使用tabview更改选项卡时如何使SwiftUI中的计时器保持触发

如何使 QTabWidget 看起来透明?

如何使 jQuery UI 选项卡在激活选项卡时执行“显示:flex”而不是“显示:阻止”?

识别 QT Qtabwidget 中的选项卡

当我从一个选项卡单击到另一个选项卡时,如何使TabLayout中的选项卡不可滚动