为了更加深入的理解信号和槽的绑定
我们使用以下2种方法来实现绑定:
比如我们在QT degisnger界面中添加一个label控件和horizontalScrollBar控件,我们想实现,拖动horizontalScrollBar进度条,label中显示相应的进度百分比。
我们进行如下操作
在 QT degisnger 界面中,按下 F4,进入信号和槽的绑定模式(实现
了在常规的控件信号和槽的对应)
按下F4之后,我们发现界面发生了变化
![](https://i-blog.csdnimg.cn/blog_migrate/4174bdf213fb212d7364334b41c91931.png)
这个时候,我们鼠标选中horizontalScrollBar这个控件,拖动鼠标左键
这时候我们就将进度条的变化与label的显示绑定起来了,我们再按F3退出绑定模式,进入到正常的UI的模式了。
动图如下
我们可以运行一下工程,如下,我们发现可以绑定了。
那么如果我们要绑定多个控件之间的信号和槽的关系怎么来绑定呢,这时候我们就需要用编码的方式了,我们要用到connect函数了
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//我希望能自主的控制控件之间的通信交互
//connect(ui->lineEdit,&QLineEdit::textChanged,ui->label_2,&QLabel::setText);
//多个控件对应
QLineEdit *lineEdit[]={ui->lineEdit,ui->lineEdit_2};
QLabel *label[] = {ui->label_2,ui->label_3};
for(int i = 0; i < 2; i++)
{
connect(lineEdit[i],&QLineEdit::textChanged,label[i],&QLabel::setText);
}
}
运行看一下,我们发现就可以了