2020年6月16日 星期二

CheckBox 的基本應用

CheckBox 的基本應用

前言

  應用程式常常需要作出選擇,不論是單選或多選,甚至不選,這時候 CheckBox 可以勝任這個任務,這次會說明在 UI 編輯器裡編輯與用程式來編輯的作法,在此做個紀錄。

內容

  先到 [ GitLab ] HelloQt 下載範例,這次應用的專案路徑
(HelloQt' directory)/CheckBox/Basic,在 Qt Creator 開啟設計介面會看到以下
範例的設計介面

圖中左側為 CheckBox 在工具箱的位置。執行結果如下
範例的執行結果

範例會在按下"Result"的時候顯示偵錯訊息,內容是三個 CheckBox 是被按下,在"Option1"的 CheckBox 的選擇改變時也會顯示偵錯訊息,這個事件的綁定可以用在如"全選"或"全不選"這樣的應用。

  在程式控制方面,看到 MainWindow::MainWindow() ,程式碼如下
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
  ui->setupUi(this);
  //
  connect( ui->pushButton , &QPushButton::clicked , this , &MainWindow::onPushButtonClicked );
  connect( ui->checkBox1 , &QCheckBox::stateChanged , this , &MainWindow::onCheckBox1StateChanged );
  //
  ui->checkBox1->setChecked( true );
}

開頭會綁定 CheckBox 的事件,接著是透過 setChecked() 來設定 CheckBox 的選擇,要注意這行發生在事件綁定之後,所以這行執行後會啟動 onCheckBox1StateChanged() 。看到 onPushButtonClicked() 的部分,程式碼如下
void MainWindow::onPushButtonClicked( bool clicked )
{
  qDebug( "Option1:%s" , ui->checkBox1->isChecked() ? "Y" : "N" );
  qDebug( "Option2:%s" , ui->checkBox2->isChecked() ? "Y" : "N" );
  qDebug( "Option3:%s" , ui->checkBox3->isChecked() ? "Y" : "N" );
}

透過 isCheck() 可以得到該 CheckBox 的選擇狀態,想當好懂。

參考資料

[ doc.qt.io ] QCheckBox Class

相關文章與資料

[ GitLab ] HelloQt

沒有留言:

張貼留言