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 的選擇狀態,想當好懂。
沒有留言:
張貼留言