2.3信号和槽(上)( 二 )

Qt5新增这种连接方式 , 这使得在编译期间就可以进行拼写检查 , 参数检查 , 类型检查 , 并且支持相容参数的兼容性转换 。
2.2.5 信号槽示例新建窗口项目SignalsAndSlotsWidget , 类名同为SignalsAndSlotsWidget , 基类选择QWidget 。
在ui中拖入1个QLineEdit , 1个QLable , 1个QSlider , 如下图
2.3信号和槽(上)文章插图
头文件
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 , 看看有什么变化 。
好了 , 今天就到这里 , 我们下期再见 。


推荐阅读