2012-04-21 177 views
3

我想在QToolButton的地方將文字放在其圖標的左側。我試圖找到相關信息,並嘗試使用以下內容:顛倒QToolButton的佈局

button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); 

但這會將文本設置在按鈕的右側。我研究過嘗試使用樣式表,但文本對齊僅適用於按鈕。有沒有辦法做到這一點?

我的最高級別的目標是使一個接口吧,看起來像這樣:

goal

用文本標籤和圖片旁邊吧。目前我正在使用帶有可檢查工具按鈕的工具欄,因爲它的樣式(沒有邊界,除非被掩蓋,還有可檢查的縮進,包含文本和圖標...)。我使用錯誤的類型小部件是完全可能的,所以如果我不能改變這個佈局,是否有任何方法來模擬這種風格?

這是我目前有:

current

回答

4

您可以使用QWidget::setLayoutDirection

toolbar->setLayoutDirection(Qt::RightToLeft); 
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); 
    } 
};