我有QTabBar / QTabWidget的问题.这是我的程序目前使用QTabBar的样子:
如您所见,QTabBar与其下方的QScrollArea之间存在难看的线.这条线是QScrollArea框架的一部分,我不能简单地将其删除,因为它在其他三个方面都是必需的.我意识到我可以使用QTabWidget,但是我必须为每个选项卡创建一个小部件,这在这里是不可行的:QScrollArea的内容根据所选的选项卡而改变,但是只有一个QScrollArea小部件. (每次创建新选项卡时复制它都会导致问题.)
所以有人知道一种方法:
(i)告诉QScrollArea绘制没有顶线的框架;要么
(ii)为QTabWidget中的每个选项卡使用相同的小部件?
更新3对于另一种方法,请参阅下面的答案.
更新1我已经实现了zvezdi的建议,并且难看的线已经消失:
这是一种改进.但这不对.查看滚动条和边框之间的间隙.在右边,它是两个像素而不是一个;在底部,它是三个像素. QScrollArea边框和mainWidget边框之间右边的间隙是一个像素太大.这是由于QTabWidget的边框风格,我正在试图改变我的理智.如果我说:
MyTabWidget -> setStyleSheet ("QTabWidget::pane { margin: 0px,0px,0px }") ;
边缘似乎是正确的,但边界消失了:
如果我说:
MyTabWidget -> setStyleSheet ("QTabWidget::pane { " " margin: 0px,0px;" " border: 1px solid darkgray;" "}") ;
然后我几乎回到了我开始的地方:
ApplicationTabWidget -> setStyleSheet ("QTabWidget::pane { " " margin: 0px,0px;" " border: 1px solid darkgray;" " border-top: 0px;" "}") ;
然后我再次为自己的痛苦而嘲笑:
更新2如果我忘记了setStyleSheet并且只是打开documentMode,这就是我得到的:
请有人告诉我,我是愚蠢的,这是一个非常简单的解决方案.