在QT中,如果直接使用UI,在控件上点击槽函数自动建立信号槽及槽函数是非常方便的。但是,有时候,我们会采用全代码、动态建立窗口和控件。这个时候就需要手动方式来建立控件的槽函数。
方法如下:
1、首先在window.h头文件中添加"public slots: 及槽函数:
class Window : public QWidget
{
Q_OBJECT
public:
Window();
public slots:
void on_lineEdit_inputText_textChanged(const QString &arg1);
};
2、在window.cpp文件中添加控件:
......
QLineEdit *inputText = new QLineEdit(this);
......
connect(inputText, SIGNAL(textChanged(QString)), this, SLOT(on_lineEdit_inputText_textChanged(QString)));
......
}
void Window::on_lineEdit_inputText_textChanged(const QString &arg1)
{
//文本输入框输入时触发本slot函数
qDebug()<<"修改LineEDIT出发函数成功!";
qDebug()<<arg1;
}
其中QLineEdit控件inputText的信号采用控件自带信号“textChanged(QString)”,将其连接到定义的槽函数即可。注意槽信号和槽函数都带有参数QString。
最后完成槽函数实现,注意通过参数引用。
3、备注:
(1)各种控件的信号均可以在帮助中查找。
(2)信号和槽参数的类型必须一致。