0

我正在尝试通过使其显示为斜体来自定义 Qt/C++ 中的 QTabBar 按钮,我发现的唯一方法是使用 setTabButton 并为其提供自定义小部件,在我的情况下这是一个 QLabel。但是,setTabButton 的位置参数只有 Left 或 Right 作为选项(参见下面的代码)。现在它在所有居中的其他选项卡旁边看起来很奇怪。

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;
}

关于如何居中的任何想法?

4

2 回答 2

0

您可以创建自定义小部件而不是您的 QLabel。在此小部件中,您可以设置带有 2 个占位符小部件的 QHBoxLayout。

QHBoxLayout:
    PlaceHolder( sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); )
    YourLabel
    PlaceHolder( sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); )

这可能会将您的小部件放在中心。

于 2012-12-11T14:59:56.843 回答
0

继承 QProxyStyle 并覆盖 drawItemPixmap,像素图将显示在中心。

于 2020-07-08T01:49:09.517 回答