我有一个问题,似乎以前有人问过这个问题,但自2008年以来一直没有任何答案。
http://www.qtcentre.org/threads/17227-QTabBar-scrollbar-separation
可以像这样将滚动条与QTabBar分开吗?
"<-" tab1 | tab2 | tab3 | tab4 "->"发布于 2018-04-07 22:20:47
滚动条由两个独立的QToolButton组成。我不认为可以通过子类QTabBar和重写paintEvent来重新设计它们。您必须创建自己的函数(在paintEvent的帮助下),该函数将不可见选项卡移动到视图端口。这也是Qt实现它的方式,查看makeVisible,并将单独的按钮连接到它,后者移动选项卡。
还有另一种轻松方式将您自己的按钮连接到QTabBar。一开始你得打电话
setUsesScrollButtons(bool useButtons) 并将此值设置为true。然后,用alpha通道重新设置滚动条的样式,这样它就变得不可见了。
QTabBar QToolButton {
background-color: rgba(255, 255, 255, 0);
border:0;
}
QTabBar QToolButton::right-arrow:enabled {
background-color: rgba(255, 255, 255, 0);
border:0;
}
QTabBar QToolButton::right-arrow:disabled {
background-color: rgba(255, 255, 255, 0);
border:0;
}
QTabBar QToolButton::left-arrow:enabled {
background-color: rgba(255, 255, 255, 0);
border:0;
}
QTabBar QToolButton::left-arrow:disabled {
background-color: rgba(255, 255, 255, 0);
border:0;
}然后,您可以使用QPushButton和>创建两个<或>。
void MainWindow::on_pushButton_2_clicked()
{
ui->tabWidget->setCurrentIndex(ui->tabWidget->currentIndex()+1);
}
void MainWindow::on_pushButton_clicked()
{
ui->tabWidget->setCurrentIndex(ui->tabWidget->currentIndex()-1);
}样品筛

也许这足够你使用,你不需要重新实现所有的东西,这可能需要几天。
如果您希望QPushButton或QToolButton在QTabBar中,您可以通过子类paintEvent来对其进行归档。为此,将QPushButton或QToolButton设置为QTabBar父级,并将x-坐标添加到QPushButton大小,这样它们就不会重叠。(屏幕截图中的按钮不是父级的。)
https://stackoverflow.com/questions/49708536
复制相似问题