QT中擷取選中的radioButton的兩種方法

來源:互聯網
上載者:User

  方法一:採用對象名稱進行擷取

  QRadioButton* pbtn = qobject_cast(ui->BG->checkedButton());

  QString name = pbtn->objectName();

  if(!QString::compare(name, "radioButton"))

  {

  QMessageBox::information(this, "Tips", "red chosed!", QMessageBox::Ok);

  }

  else if(!QString::compare(name, "radioButton_2"))

  {

  QMessageBox::information(this, "Tips", "blue chosed!", QMessageBox::Ok);

  }

  else

  {

  QMessageBox::information(this, "Tips", "black chosed!", QMessageBox::Ok);

  }

  該程式碼片段中,首先使用qobject_cast將checkedButton()函數返回的QAbstractionButton轉換為其子類類型QRadioButton.然後,擷取被選中按鈕的對象名。這可以通過擷取objectName這個屬性擷取。再稍作判斷即可得知結果。註:BG是手動添加的QGroupButton類型,radioButton和radioButton_2,radioButton_3都是UI中添加的radioButton控制項。

  方法二:通過button的ID來擷取

  位於建構函式中的代碼(初始選中第一個按鈕):

  ui->BG->setId(ui->radioButton, 0);

  ui->BG->setId(ui->radioButton_2, 1);

  ui->BG->setId(ui->radioButton_3, 2);

  ui->radioButton->setChecked(true);

  響應訊號的槽函數或其他函數中的代碼:

  int a = ui->BG->checkedId();

  switch(a)

  {

  case 0:

  QMessageBox::information(this, "Tips", "Red chosed!", QMessageBox::Ok);

  break;

  case 1:

  QMessageBox::information(this, "Tips", "blue chosed!", QMessageBox::Ok);

  break;

  case 2:

  QMessageBox::information(this, "Tips", "black chosed!", QMessageBox::Ok);

  break;

  default:

  break;

  }

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。