2009-09-19 56 views
1

我剛剛開始與QT。我已經通讀了一些教程,並且我認爲我對信號和插槽有所瞭解。我正在編寫一個具有各種按鈕的GUI,以改變我的主程序的狀態。例如,在繪圖應用程序中,您可以選擇不同的繪圖工具(使用各種按鈕)。qt GUI連接

什麼是去了解這一點的最好方法是什麼?我的第一個想法是嘗試將PushButton的點擊信號連接到設置current_tool變量的某個函數。我做了一些搜索,並找不到將QObject信號連接到常規函數的方法。

這使我相信,可能有不同的方法。我創建一個具有各種GUI屬性的新QObject(我自己的擴展)。然後我會在這裏爲我的各個按鈕定義我的插槽。

在QT中做這件事的最好方法是什麼?我是新來的,不知道首選的做法。

任何信息將是有益的, 感謝

回答

1

可以定義這些「正常功能」的插槽。老虎機只是normal functions那也可以通過信號稱爲:

從UIC生成,創造,也就是說,一個MyAppWindow類的類
class ToolSelector : public QObject { 
    Q_OBJECT 

public: 
    Tool *selected; 

public slots: 
    void selectBrush(); 
    void selectPen(); 
    void selectFill(); 
}; 

ToolSelector::selectBrush() { 
    delete selected; 
    selected = new Brush(); 
} 

ToolSelector::selectPen() { 
    // ... 
} 

// ... 

toolsel = new ToolSelector(); 
brushButton = new QPushButton(); 
connect(brushButton, SIGNAL(clicked()), toolsel, SLOT(selectBrush())); 
+0

重要的是要注意,這隻適用於由QObject派生的對象。 – ypnos 2009-09-20 11:41:02

0

繼承。在該類中提供額外的方法以及文檔或繪圖對象。將這些方法連接到您感興趣的信號,然後它們更改包含繪圖狀態的成員變量。