lineEdit单行文本框


Header:  #include <QLineEdit>  

qmake:QT += widgets  

Inherits:     QWidget

信号 

 h文件

#ifndef WIN_H
#define WIN_H

#include <QWidget>
#include <QDebug>

QT_BEGIN_NAMESPACE
namespace Ui { class win; }
QT_END_NAMESPACE

class win : public QWidget
{
    Q_OBJECT

public:
    win(QWidget *parent = nullptr);
    ~win();

private:
    Ui::win *ui;

public slots:
    void A();
    void B(QString str);
    void C(QString str);
    void D();
    void E();
    void F(int,int);

};
#endif // WIN_H

cpp文件

#include "win.h"
#include "ui_win.h"

win::win(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::win)
{
    ui->setupUi(this);
    QObject::connect(ui->lineEdit1,SIGNAL(returnPressed()),this,SLOT(A(void)));  //光标在行编辑框内点回车,发射信号
    connect(ui->lineEdit1,SIGNAL(textChanged(QString)),this,SLOT(B(QString)));  //文本内容改变时,发射信号
    //传递的参数:文本框中的文本
    connect(ui->lineEdit1,SIGNAL(textEdited(QString)),this,SLOT(C(QString)));  //当文本被编辑时,发射该信号
    //当使用setText()改变文本时,textEdited()信号也会发射
    connect(ui->lineEdit1,SIGNAL(editingFinished()),this,SLOT(D(void)));  //当编辑完成点回车,发射信号
    connect(ui->lineEdit1,SIGNAL(selectionChanged()),this,SLOT(E(void)));  //选择的文本发生变化时,发射信号
    connect(ui->lineEdit1,SIGNAL(cursorPositionChanged(int,int)),this,SLOT(F(int,int)));  //光标位置改变,发射信号。
    //前面的位置old,新的位置是new


}

win::~win()
{
    delete ui;
}

void win::A(){
    qDebug()<<"发出returnPressed信号"<<'
';
}

void win::B(QString str){
    qDebug()<<"发出textChanged信号:"<<str<<'
';
}

void win::C(QString str){
    qDebug()<<"发出textEdited信号:"<<str<<'
';
}

void win::D(){
    qDebug()<<"发出editingFinished信号"<<'
';
}

void win::E(){
    qDebug()<<"发出selectionChanged信号"<<'
';
}

void win::F(int aa,int bb){
    qDebug()<<"光标位置变化了,原位置:"<<aa<<"     新位置:"<<bb<<'
';
}

原文地址:https://www.cnblogs.com/liming19680104/p/13683165.html