反转QToolButton的布局

时间:2012-04-21 15:19:47

标签: qt

我想创建一个QToolButton,其中文本位于其图标的左侧。我试图找到相关信息,并尝试使用:

button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);

但是这会将文本设置在按钮的右侧。我已经研究过尝试样式表,但文本对齐仅适用于按钮。有没有办法做到这一点?

我的最高目标是创建一个如下所示的界面栏:

goal

旁边有文字标签和图片。目前我正在使用带有可检查工具按钮的工具栏,因为样式(除非moused-over,否则没有边框,仍然具有可检查的缩进,包含文本和图标......)。完全有可能我使用了错误的类型小部件,所以如果我不能改变它的布局,有没有办法模仿这种风格?

这就是我目前所拥有的:

current

2 个答案:

答案 0 :(得分:4)

您可以使用QWidget::setLayoutDirection

toolbar->setLayoutDirection(Qt::RightToLeft);

答案 1 :(得分:1)

您最好的选择可能是在QWidget中自己创建此功能。它应该在QHBoxLayout中排列QLabel和QToolButton(或QPushButton)。然后,您可以使用QToolBar::addWidget()QToolBar::insertWidget()将此自定义窗口小部件添加到工具栏。

以下是您可以使用的小部件示例:

#include <QtGui>

class CoolButton : public QWidget
{
public:
    CoolButton(QWidget *parent = 0) : QWidget(parent)
    {
        QLabel *label = new QLabel("Hi!", this);
        QToolButton *button = new QToolButton(this);
        QHBoxLayout *layout = new QHBoxLayout;
        layout->addWidget(label);
        layout->addWidget(button);
        setLayout(layout);
    }
};