gpt4 book ai didi

c++ - QTabWidget 增加选项卡滚动条箭头按钮的宽度

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:27 24 4
gpt4 key购买 nike

我有一个带有太多标签的 QTabWidget

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

有一个QTabWidget StyleSheet example但我似乎无法让它很好地工作。下面的样式表生成此屏幕截图

QTabBar::scroller { /* the width of the scroll buttons */
width: 40px;
}

QTabBar QToolButton { /* the scroll buttons are tool buttons */
width: 15px;
border-width: 2px;
}

我想要像我编辑的这张截图这样的东西。

最佳答案

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

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

QTabBar::scroller {width: 0px;}

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

               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 属性。听起来比实际情况更糟。您可能可以在 header 中使用大约十几行代码来完成它;尽管如果您在设计选项卡或设计器中使用 Qt Creator,您将需要提升选项卡小部件。

关于c++ - QTabWidget 增加选项卡滚动条箭头按钮的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53567642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com