Qt的控件中没有自带像MFC里可以编辑IP地址的控件,我就自己封装了一个。
一、构成:
1、四个从QLineEdit继承的子类,在QLineEdit基础上,实现以下功能:
捕获“.”键:当安此键时光标调到下一个编辑框;
捕获Backspace键:当前编辑框的内容删除完时,光标调到前一个编辑框(如果有的话);
捕获Left和Right键:当前编辑框的内容遍历完时,将光标移动到前一或后一个编辑框;
判断内容:禁止输入负号,当输入值超过255时弹出警告,并将值设置为255.
2、从QWidget继承,包含以上四个类
实现了一些常用的信号和槽。
public
:
QString text() const;
void setStyleSheet( const QString &styleSheet);
void setReadOnly( bool);
bool isReadOnly() const { return readOnly; }
public slots :
void setText( const QString &);
void clear();
private slots :
void ipChanged( const QString &);
void ipEdited( const QString &);
signals :
void textChanged( const QString &);
void textEdited( const QString &);
QString text() const;
void setStyleSheet( const QString &styleSheet);
void setReadOnly( bool);
bool isReadOnly() const { return readOnly; }
public slots :
void setText( const QString &);
void clear();
private slots :
void ipChanged( const QString &);
void ipEdited( const QString &);
signals :
void textChanged( const QString &);
void textEdited( const QString &);
二、运行效果图如下:
三、源代码