当你觉得写代码是一件重复性极高的工作时,这时你就应该考虑换个方式来实现了。

提高代码效率,减少代码量。

代码片:

  1. void Widget::onClicked()
  2. {
  3. QPushButton* button = qobject_cast<QPushButton*>(sender());
  4. QRadioButton* radio = qobject_cast<QRadioButton*>(sender());
  5. if (button)
  6. {
  7. QString text = button->text();
  8. ui->label_2->setText(text);
  9. }
  10. else if(radio)
  11. {
  12. QString text = radio->text();
  13. ui->label_2->setText(text);
  14. }
  15. }

实例:

1、在Qt creator中拖拽出如下界面:

2、添加槽函数。

  1. private slots:
  2. void onClicked();

3、添加信号与槽的关联。

  1. connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(onClicked()));
  2. connect(ui->pushButton_2,SIGNAL(clicked(bool)),this,SLOT(onClicked()));
  3. connect(ui->pushButton_3,SIGNAL(clicked(bool)),this,SLOT(onClicked()));
  4. connect(ui->pushButton_4,SIGNAL(clicked(bool)),this,SLOT(onClicked()));
  5. connect(ui->radioButton,SIGNAL(clicked(bool)),SLOT(onClicked()));
  6. connect(ui->radioButton_2,SIGNAL(clicked(bool)),SLOT(onClicked()));
  7. connect(ui->radioButton_3,SIGNAL(clicked(bool)),SLOT(onClicked()));
  8. connect(ui->radioButton_4,SIGNAL(clicked(bool)),SLOT(onClicked()));

4、实现槽函数。

  1. void Widget::onClicked()
  2. {
  3. QPushButton* button = qobject_cast<QPushButton*>(sender());
  4. QRadioButton* radio = qobject_cast<QRadioButton*>(sender());
  5. if (button)
  6. {
  7. QString text = button->text();
  8. ui->label_2->setText(text);
  9. }
  10. else if(radio)
  11. {
  12. QString text = radio->text();
  13. ui->label_2->setText(text);
  14. }
  15. }

5、运行截图:

当然了,这里我只是举个例子,在实际的应用中大家可以扩展其功能的。

http://blog.csdn.net/rl529014/article/details/52144009

最新文章

  1. 步入angularjs directive(指令)--点击按钮加入loading状态
  2. orcal 操作
  3. ViewPager+RadioGroup实现标题栏切换,Fragment切换
  4. iOS 图片轮播图(自动滚动)
  5. vim——打开多个文件、同时显示多个文件、在文件之间切换
  6. C#图片处理---基础
  7. nginx location 的配置
  8. iPhone socket 编程之BSD Socket篇
  9. Python安装BeautifulSoup库(Windows平台下)
  10. JS获取日期和时间
  11. [React] React Fundamentals: with-addons - ReactLink
  12. C#—Dev XtraTabControl动态增加Tab和关闭选项卡方法
  13. Open virtual effects in Ubuntu 12.04LTS
  14. HDOJ 6069 素数筛法(数学)
  15. 扩展Spring切面功能
  16. 简单的面向对象(OO)练习
  17. Effective STL 为包含指针的关联容器指定比较类型
  18. 从壹开始微服务 [ DDD ] 之八 ║剪不断理还乱的 值对象和Dto
  19. Generative Adversarial Nets[Improved GAN]
  20. Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结和踩坑

热门文章

  1. 生成式模型(generative) vs 判别式模型(discriminative)
  2. K 线图的认识
  3. Android 混淆[学习笔记]
  4. 假设做一个循环滚动UIScrollView
  5. HDU 1867 A + B for you again KMP解决问题的方法
  6. Symfony——如何使用Assetic实现资源管理
  7. WPF学习目录
  8. EF相关报错
  9. WPF TreeView遍历硬盘
  10. NoSQL Manager for MongoDB 4.6.0.3 带key