2012-04-21 2 views
3

Я хотел бы сделать QToolButton, где текст слева от его значка. Я попытался найти соответствующую информацию и попробовал:Реверсирование макета QToolButton

button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 

, но это устанавливает текст в правой части кнопки. Я изучил стильные таблицы стилей, но выравнивание текста предназначено только для кнопок. Есть какой-либо способ сделать это?

Моя высшего уровня цель состоит в том, чтобы сделать панель интерфейса, который выглядит следующим образом:

goal

с текстовой меткой и изображения прямо рядом с ним. В настоящее время я использую панель инструментов с настраиваемыми кнопками из-за стиля (без границ, кроме moused-over, все еще имеет отступ с проверкой, содержит текст и значок ...). Вполне возможно, что я использую виджеты неправильного типа, поэтому, если я не могу изменить макет этого, есть ли способ подражать этому стилю?

Это то, что я в настоящее время:

current.

ответ

4

Вы можете использовать QWidget::setLayoutDirection:

toolbar->setLayoutDirection(Qt::RightToLeft); 
1

Ваш лучший выбор - возможно, создать эту функцию самостоятельно в QWidget. Он должен иметь QLabel и QToolButton (или QPushButton), размещенные в QHBoxLayout. Затем вы можете добавить этот пользовательский виджет на панель инструментов, используя 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); 
    } 
}; 
Смежные вопросы