QTabWidget增加标签滚动条箭头按钮的宽度

时间:2018-12-01 03:56:49

标签: c++ qt qtabwidget

我的QTabWidget的标签太多了

,并且它们用滚动箭头溢出。我想将滚动箭头的宽度增加到默认宽度的两倍以上,以便更容易在触摸屏上使用。

有一个QTabWidget StyleSheet example,但我似乎无法使其正常工作。下面的样式表会生成此屏幕截图

Banner

我想要的是我编辑的此屏幕截图。

1 个答案:

答案 0 :(得分:0)

方法1:这似乎是一个简单,简单的错误。按钮的背景是透明的。但是通过样式表将其设置为白色并设置宽度也无法正常工作。

我能够通过使用样式表来解决此问题:

QTabBar::scroller {width: 0px;}

如果它不起作用:摆脱它。然后,我创建了两个按钮来向右滚动,然后将标签小部件和按钮水平放置。我将封闭垂直和水平布局的填充设置为零。我将按钮标记为“ <”和“>”,但是如果您愿意,您可以使用git fancier。如果要使滚动条下方的标签区域与标签栏和按钮的宽度相同,则需要两个标签小部件:

               QTabWidget1    Button1    Button2

                         Wider QTabwidget2

然后,您设置QTabWidget1的高度,以便仅显示选项卡,并使用样式表将QTabWidget2的选项卡栏高度设置为0:

QTabBar::tab {height: 0px;}

因此仅显示选项卡的主体;不是标签本身。

由于它们不够周全,无法显示选项卡栏的滚动方法,因此可以通过setCurrentIndex()更改活动选项卡来进行伪造;它将保持可见。

然后可以激活或停用<和>按钮,具体取决于第一个或最后一个选项卡是否已激活。由于我的应用程序主要是计算功能,几乎不需要修饰,因此我不愿意隐藏它们或禁用它们。

是的,它是PITA。如果没有更好的解决方法,则只需编写代码即可。如果生活给您一个柠檬,请制造柠檬炸弹,并告诉谁是老板。 (实际上,几乎总是比喻性的。)我将在有时间的其中之一提交错误报告,直到有空。

也许有些魔术可以使这些按钮具有正常的背景和大小;但我不认识他们。

编辑:方法2:解决了我的问题,但没有OP的问题(对于那些遇到相同问题的人。当我不想重新设置这些按钮的样式时,由于此问题我来了。这是一个已知的错误,当使用QTabBar具有或继承的样式表:"When adding a style sheet to the tabs the navigation scroll arrow buttons become transparent"(对此问题进行投票,它将得到更快的解决。)简单地不使用样式表就解决了我的问题。并将其应用于我只想样式的元素,对其进行修复。

方法3:您可以尝试使用非样式表属性设置诸如按钮宽度之类的属性,直到它得到修复为止。尽管我相信这将意味着将QTabWidget和QTabBar子类化以访问QToolButton属性。听起来比实际更糟。您可能需要在标头中使用大约十二行代码来完成此操作。尽管如果您在“设计”标签或“设计器”中使用Qt Creator,则需要升级标签小部件。