如何防止 QTabWidget 中的选项卡按钮缩小

Posted

技术标签:

【中文标题】如何防止 QTabWidget 中的选项卡按钮缩小【英文标题】:How to prevent tab buttons from shrinking in QTabWidget 【发布时间】:2015-02-25 21:04:42 【问题描述】:

当我缩小包含窗口时,如何防止 Qt5 QTabWidget 的选项卡按钮缩小,从而掩盖完整的选项卡名称?

这是一个独立的问题示例:

#include <QApplication>
#include <QMainWindow>
#include <QtGui>
#include <QTableWidget>

QTableWidget*
makeTableWidget( QWidget* parent )

    QTableWidget* tableWidget = new QTableWidget( 20, 20, parent );

    for( int irow = 0; irow < 20; irow++ ) 
      for( int icol = 0; icol < 20; icol++ ) 
            QTableWidgetItem* newItem = new QTableWidgetItem( QString( "%1,%2" ).arg( irow ).arg( icol ) );
            tableWidget->setItem( irow, icol, newItem );
      
    

    return tableWidget;


int
main( int argc, char *argv[] ) 
    QApplication app( argc, argv );

    QMainWindow* mw = new QMainWindow();

    QTabWidget* tabs = new QTabWidget();

    tabs->setUsesScrollButtons( true );

    for( int itab = 0; itab < 10; itab++ ) 
            QTableWidget* tableWidget = makeTableWidget( mw );
            tabs->addTab( tableWidget, QString( "Table%1" ).arg( itab, 2, 10, QLatin1Char( '0' ) ) );
    

    mw->setCentralWidget( tabs );

    mw->show();

    return app.exec();

当主窗口足够大时,我可以看到每个选项卡的全名:

然而,当我缩小主窗口时,标签名称会缩短,每个名称的一部分会被省略,即使我已启用标签栏的滚动功能:

由于启用了标签栏滚动,从 UI 的角度来看,它似乎可以将标签名称保持在完整大小,因此用户将能够明确地阅读每个标签。

但是,我需要知道如何修改上述代码,以使选项卡按钮名称不会缩小并因此被部分省略。

为了简洁起见,我将不再描述我试图弄清楚这一点的许多被误导的新手实验。

谢谢

【问题讨论】:

【参考方案1】:

您可以使用以下方法禁用文本省略:

tabs->setElideMode(Qt::ElideNone);

【讨论】:

以上是关于如何防止 QTabWidget 中的选项卡按钮缩小的主要内容,如果未能解决你的问题,请参考以下文章

仅在 QTabWidget 的活动选项卡上关闭按钮

如何在 QTabWidget 中隐藏选项卡并在按下按钮时显示它

python 如何从 QTabwidget 获取选项卡名称

Python:如何从 QTabWidget 查询当前选项卡

如何禁用 QTabWidget 中的一个选项卡?

如何访问 QTabWidget 不同选项卡中的小部件?