2.3信号和槽(上)( 二 )
Qt5新增这种连接方式 , 这使得在编译期间就可以进行拼写检查 , 参数检查 , 类型检查 , 并且支持相容参数的兼容性转换 。
2.2.5 信号槽示例新建窗口项目SignalsAndSlotsWidget , 类名同为SignalsAndSlotsWidget , 基类选择QWidget 。
在ui中拖入1个QLineEdit , 1个QLable , 1个QSlider , 如下图
文章插图
头文件
class SignalsAndSlotsWidget : public QWidget{Q_OBJECTpublic:explicit SignalsAndSlotsWidget(QWidget *parent = 0);~SignalsAndSlotsWidget();signals://自定义信号 , 发出此信号 , 使得QLabel显示文字void sigShowVal(const QStringpublic slots://自定义槽 , 当LineEdit发出文字改变的信号时 , 执行这个槽void sltLineEditChanged(const QStringprivate:Ui::SignalsAndSlotsWidget *ui;};
源文件
SignalsAndSlotsWidget::SignalsAndSlotsWidget(QWidget *parent) :QWidget(parent),ui(new Ui::SignalsAndSlotsWidget){ui->setupUi(this);int max = 100;int min = 0;ui->horizontalSlider->setMaximum(max);//设置最大最小值ui->horizontalSlider->setMinimum(min);//设置QLineEdit只能输入数字 , 且为0-100QIntValidator* validator = new QIntValidator(min, max, this);ui->lineEdit->setValidator(validator);connect(ui->lineEdit,connect(this,SIGNAL(sigShowVal(QString)),ui->label,SLOT(setText(QString)));}SignalsAndSlotsWidget::~SignalsAndSlotsWidget(){delete ui;}void SignalsAndSlotsWidget::sltLineEditChanged(const QStringui->horizontalSlider->setValue(val);//设置slider当前值emit sigShowVal(text);//通知label显示文字}
运行程序 , 在输入框中输入0-100 , 看看有什么变化 。
好了 , 今天就到这里 , 我们下期再见 。
推荐阅读
- 手机能用多久?如果出现这3种征兆,说明“默认使用时间”已到
- 近期浙江引来这么多重磅级“帮手”传递什么信号?
- 支付宝发布新规,用户如果出现这3种情况,花呗或将直接封停
- iPhone 12信号差真实原因曝光:不是基带问题
- Verizon的5G网络将覆盖至全美2.3亿人
- iPhone12 重现iPhone 7“信号门”,但库克沉默
- 计算机专业大三学生,如果想主攻前端开发,该重视哪些内容
- 将要报废的手机会出现这三个信号,你出现了吗?
- 手机信号增强贴 警惕别被伪科技忽悠了
- 大数据专业的同学,如果要往人工智能方向发展,该怎么选课