簡體   English   中英

qt GUI連接

[英]qt GUI connecting

我只是從QT開始。 我已經通讀了一些教程,並且我認為我對信號和插槽有所了解。 我正在編寫一個具有各種按鈕的GUI,這些按鈕可以更改主程序的狀態。 因此,例如在繪圖應用程序中,您將選擇不同的繪圖工具(使用各種按鈕)。

最好的方法是什么? 我的第一個想法是嘗試將PushButton的單擊信號連接到設置current_tool變量的某個函數。 我進行了一些搜索,但找不到將QObject信號連接到常規函數的方法。

這使我相信可能有另一種方法。 我在其中創建一個具有各種GUI屬性的新QObject(即我自己的擴展名)。 然后,我將在此處為各種按鈕定義插槽。

在QT中執行此操作的最佳方法是什么。 我是新手,不知道首選做法。

任何信息都將是有用的,謝謝

您可以將這些“常規功能”定義為插槽。 插槽只是正常功能 ,也可以通過信號調用:

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()));

從uic生成的類繼承,創建一個MyAppWindow類。 在該類中提供其他方法,以及Document或Drawing對象。 將這些方法連接到您感興趣的信號,它們會更改包含繪圖狀態的成員變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM