當你覺得寫代碼是一件重複性極高的工作時,這時你就應該考慮換個方式來實作了。
提高代碼效率,減少代碼量。
代碼片:
void Widget::onClicked()
{
QPushButton* button = qobject_cast<QPushButton*>(sender());
QRadioButton* radio = qobject_cast<QRadioButton*>(sender());
if (button)
{
QString text = button->text();
ui->label_2->setText(text);
}
else if(radio)
{
QString text = radio->text();
ui->label_2->setText(text);
}
}
執行個體:
1、在Qt creator中拖拽出如下界面:
2、添加槽函數。
private slots:
void onClicked();
3、添加信号與槽的關聯。
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(onClicked()));
connect(ui->pushButton_2,SIGNAL(clicked(bool)),this,SLOT(onClicked()));
connect(ui->pushButton_3,SIGNAL(clicked(bool)),this,SLOT(onClicked()));
connect(ui->pushButton_4,SIGNAL(clicked(bool)),this,SLOT(onClicked()));
connect(ui->radioButton,SIGNAL(clicked(bool)),SLOT(onClicked()));
connect(ui->radioButton_2,SIGNAL(clicked(bool)),SLOT(onClicked()));
connect(ui->radioButton_3,SIGNAL(clicked(bool)),SLOT(onClicked()));
connect(ui->radioButton_4,SIGNAL(clicked(bool)),SLOT(onClicked()));
4、實作槽函數。
void Widget::onClicked()
{
QPushButton* button = qobject_cast<QPushButton*>(sender());
QRadioButton* radio = qobject_cast<QRadioButton*>(sender());
if (button)
{
QString text = button->text();
ui->label_2->setText(text);
}
else if(radio)
{
QString text = radio->text();
ui->label_2->setText(text);
}
}
5、運作截圖:
當然了,這裡我隻是舉個例子,在實際的應用中大家可以擴充其功能的。