我正在尝试通过使其显示为斜体来自定义Qt/C++中的QTabBar按钮,我发现的唯一方法是使用setTabButton并给它一个自定义小部件,在我的例子中是QLabel。但是,setTabButton 的位置参数只有左或右作为选项(请参阅下面的代码)。现在,它在其他所有居中的选项卡旁边看起来很奇怪。
tab_bar->setTabButton(index, QTabBar::RightSide,((QWidget*)(tab_label)));
请注意,有一个样式表应用于整个应用程序...不确定这是否会导致问题更加明显。
该标签的样式表为:
QLabel#GrainButton {
background-color: transparent;
border: 0px solid transparent;
margin: 0px;
padding: 0px;
min-width: 20px;
border: 0px solid transparent;
border-radius: 0px;
}
关于如何居中的想法吗?
您可以创建自定义小部件而不是 QLabel。在此小部件中,您可以设置带有 2 个占位符小部件的 QHBoxLayout。
QHBoxLayout:
PlaceHolder( sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); )
YourLabel
PlaceHolder( sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); )
这可能会将您的小部件放在中心。
继承 QProxyStyle 并覆盖 drawItemPixmap,pixmap 将显示在中心。