首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTabBar滚动条分离

QTabBar滚动条分离
EN

Stack Overflow用户
提问于 2018-04-07 14:44:37
回答 1查看 857关注 0票数 2

我有一个问题,似乎以前有人问过这个问题,但自2008年以来一直没有任何答案。

http://www.qtcentre.org/threads/17227-QTabBar-scrollbar-separation

可以像这样将滚动条与QTabBar分开吗?

代码语言:javascript
复制
"<-" tab1 | tab2 | tab3 | tab4 "->"
EN

回答 1

Stack Overflow用户

发布于 2018-04-07 22:20:47

滚动条由两个独立的QToolButton组成。我不认为可以通过子类QTabBar和重写paintEvent来重新设计它们。您必须创建自己的函数(在paintEvent的帮助下),该函数将不可见选项卡移动到视图端口。这也是Qt实现它的方式,查看makeVisible,并将单独的按钮连接到它,后者移动选项卡。

还有另一种轻松方式将您自己的按钮连接到QTabBar。一开始你得打电话

代码语言:javascript
复制
setUsesScrollButtons(bool useButtons) 

并将此值设置为true。然后,用alpha通道重新设置滚动条的样式,这样它就变得不可见了。

代码语言:javascript
复制
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和>创建两个<>

代码语言:javascript
复制
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大小,这样它们就不会重叠。(屏幕截图中的按钮不是父级的。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49708536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档