Qt Widget

雙擊 mainwindow.ui 之後 Qt Creator 就會自動導向 Qt Designer。

在這邊你能夠自由拖拉 Widget 加入你的程式中。

如果要加入觸發指令動作,右鍵點擊你想要加入動作的元件 (QCombobox) 然後選擇 跳到信號槽...,Qt 會問你要創建何種訊號類型,你也可以自創訊號種類,我們會在第三章再介紹。

在這個範例中,我們選擇 currentIndexChanged(int) 的訊號,這個訊號的啟動條件為當 combo box 中的目錄 (項目) 改變,就會回傳當前 (新的) 的目錄編號。

選擇完後,Qt 會自動導向到撰寫程式碼的地方,並且自動幫你加入一段程式碼片段,你可以在大括號之中加入你想要寫的程式碼。

void MainWindow::on_comboBox_currentIndexChanged(int index)
{

}

例如當我選擇 combo box 的某一項內容時,我希望下方的 label 內容也能夠顯示我的選擇,我可以加入以下程式碼片段。

void MainWindow::on_comboBox_currentIndexChanged(int index)
{
    ui->combo_label->setText(QString::number(index) + " " +ui->comboBox->currentText());
}

Widget label 有一個 public slot 叫做 void setText(const QString &),(我們稍後會解釋 slot,你現在只要把 slot 當成 class 中 public, private 等等分類的其中一種) 我們可以將 QString (Qt 版本的 std::string ,不過比原生的 string 有更多功能) 放入 void setText(const QString &) 中使得 label 顯示我們指定給他的字。 QString 可以用 + 號串接字串,也可以運用 QString::number(int) 將數字轉為 QString,如果要取得我們當前選擇 combo box 目錄的字 (這邊為 Hello),則可以使用 currentText() 函式。最終結果如下:

results matching ""

    No results matching ""