QT自学笔记(5)
来源:互联网 发布:命运 定数 知乎 编辑:程序博客网 时间:2024/06/11 00:05
前言:这一节我们学习下继续运用信号与槽机制的应用,也就是复选框的应用。
什么是复选框
就是可以勾选的框,我们在装软件时就经常遇到,就是问你是否同意这个协议:
在qt中复选框的英文是checkbox。
复选框常用的函数成员
1.stateChanged(int)
这个是signal函数,即打勾或不打勾的状态发生改变的信号
2.isChecked()
这个函数用于检查是否打勾,若打了勾,返回true,没打返回false。
补充:pushbutton的另一个成员函数:setEnabled(true)和setEnabled(false),前面那个使这个按钮可以被操作,后面那个使这个按钮变成灰的,不能按。
实例
我们写一个例子,他的形式为:
说明:当勾选时,下一步的按钮可以被点,没有选中就为灰的。
第一步:
在ui下布局:
补充:可以在右下角的属性中设置复选框的默认状态,是打开还是关闭(就是这个checked)。
第二步:选中按钮,在属性栏将他使能关闭。
第三步:写代码:
头文件:
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();private: Ui::MainWindow *ui;private slots: int oncheckchange();};#endif // MAINWINDOW_H
源文件:
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); connect ( ui->checkBox,//信号的触发者为复选框 SIGNAL(stateChanged(int)),//信号就是复选框的状态改变 this, SLOT(oncheckchange())//槽函数就是改变按钮状态 );}MainWindow::~MainWindow(){ delete ui;}int MainWindow::oncheckchange(){ if(ui->checkBox->isChecked()==true)//复选框被打勾 { ui->pushButton->setEnabled(true);//将按钮使能打开 } else { ui->pushButton->setEnabled(false);//将按钮使能关闭 } return 0;}
想法:因为我们还有一个按钮取消,我们可以设置当取消被按下时,窗口关闭。试试看0.0.
思路:再写一个connect,里面的对象是取消按钮。然后写个槽函数,用于关闭主窗口。这个函数就是: QApplication::exit();
完整代码:
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); connect ( ui->checkBox, SIGNAL(stateChanged(int)), this, SLOT(oncheckchange()) ); connect ( ui->quxiao, SIGNAL(clicked(bool)), this, SLOT(guanbi()) );}MainWindow::~MainWindow(){ delete ui;}int MainWindow::oncheckchange(){ if(ui->checkBox->isChecked()==true) { ui->pushButton->setEnabled(true); } else { ui->pushButton->setEnabled(false); } return 0;}void MainWindow::guanbi(){ QApplication::exit();}
阅读全文
0 0
- QT自学笔记(5)
- QT自学笔记(—)
- QT自学笔记(二)
- QT自学笔记(三)
- QT自学笔记(四)
- QT自学笔记(6)
- QT自学笔记(七)
- QT自学笔记(八)
- QT自学笔记(九)
- qt自学笔记(十)
- qt自学笔记(十一)之定时器
- 工作自学Qt笔记
- 自学Qt教程(序)
- lua 自学笔记5
- 自学linux从零开始(自学笔记①)
- 自学Linux从零开始(自学笔记③)
- 《Qt Creator快速入门》(第二版,霍亚飞)自学笔记 2.2.3设置应用程序图标
- 自学QT之Qt 4迁移至Qt 5
- 报错上传到bugly进行统计
- PASCAL VOC数据集介绍
- spring事务传播行为笔记
- ShoeCAM v4.2 1CD(鞋模专业CAM系统,智能路径规划)
- day-18-数据库-MySQL-查询和多表
- QT自学笔记(5)
- 2017-11-08
- TCHAR转为char类型和TCHAR转为TCHAR类型
- java中堆区和栈区的理解
- Discretized Continuous Speech Emotion Recognition with Multi-Task Deep Recurrent Neural Network
- 时间日期操作组件joda 简单体验
- python圣斗士修炼(十三):错误和异常处理
- C语言之旅(6)内存空间的管理
- 【Web】(AJAX缓存问题)挂载Flask上,更改本地文件,ajax依然读取以前的文件