QTabWidget的选项卡宽度默认是按照字符的宽度计算的,有时候需要自动拉伸填充整个tabbar,使得更美观,QTabWidget控件本身不带这个属性设置或者方法控制的,需要自行计算,比如在窗体显示的时候自动计算QTabWidget的整体宽度,除以tab的数量就是每个tab选项卡的宽度,然后对应设置样式表即可。也可以继承QTabWidget写个类专门做这个事情。

void MainWindow::showEvent(QShowEvent *)
{
    int width = ui->tabWidget->width();
    int tabCount = ui->tabWidget->count();
    int tabWidth = width / tabCount;
    this->setStyleSheet(QString("QTabBar::tab{width:%1px;}").arg(tabWidth));
}