1:写个子类继承于QLineEdit
头文件
#ifndef MYFLOATLINEEDIT_H
#define MYFLOATLINEEDIT_H
#include <QLineEdit>
class myFloatLineEdit : public QLineEdit
{
Q_OBJECT
public:
explicit myFloatLineEdit(QWidget *parent = nullptr);
~myFloatLineEdit();
void setMaxMin(float max,float min); //设置最大值和最小值
private slots:
void slot_textChanged(QString text); //文本改变
private:
float max,min;
};
#endif // MYFLOATLINEEDIT_H
C文件
#include "myfloatlineedit.h"
#include <QKeyEvent>
myFloatLineEdit::myFloatLineEdit(QWidget *parent) : QLineEdit(parent)
{
max = 99;
min = 0;
connect(this,SIGNAL(textChanged(QString)),this,SLOT(slot_textChanged(QString)));
}
myFloatLineEdit::~myFloatLineEdit()
{
}
//设置最大值和最小值
void myFloatLineEdit::setMaxMin(float max,float min)
{
this->max = max;
this->min = min;
}
//文本改变
void myFloatLineEdit::slot_textChanged(QString text)
{
if(text == "****" || text == "**.*")
return;
bool ok = false;
int value = text.toFloat(&ok);
if(!ok)
{
this->backspace();
return;
}
if(value<min)
this->setText(QString::number(min));
else if(value>max)
this->backspace();
}
2:以上是浮点数的,以下是整数的
#ifndef MYINTLINEEDIT_H
#define MYINTLINEEDIT_H
#include <QLineEdit>
class myIntLineEdit : public QLineEdit
{
Q_OBJECT
public:
explicit myIntLineEdit(QWidget *parent = 0);
~myIntLineEdit();
void setMaxMin(float max,float min); //设置最大值和最小值
private slots:
void slot_textChanged(QString text); //文本改变
private:
int max,min;
};
#endif // MYINTLINEEDIT_H
#include "myintlineedit.h"
#include <QKeyEvent>
myIntLineEdit::myIntLineEdit(QWidget *parent) :
QLineEdit(parent)
{
max = 99;
min = 0;
connect(this,SIGNAL(textChanged(QString)),this,SLOT(slot_textChanged(QString)));
}
myIntLineEdit::~myIntLineEdit()
{
}
//设置最大值和最小值
void myIntLineEdit::setMaxMin(float max,float min)
{
this->max = max;
this->min = min;
}
//文本改变
void myIntLineEdit::slot_textChanged(QString text)
{
if(text == "****" || text == "**.*")
return;
bool ok = false;
int value = text.toInt(&ok);
if(!ok)
{
this->backspace();
return;
}
if(value<min)
this->setText(QString::number(min));
else if(value>max)
this->backspace();
}
源码在这里:https://download.csdn.net/download/u012230798/10974374