QT 手动建立 带参数的信号槽

在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)信号和槽参数的类型必须一致。


版权声明:本文为oop4587原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。