QT中封装的IP地址的widgetCWord文档格式.docx

上传人:b****6 文档编号:17652477 上传时间:2022-12-07 格式:DOCX 页数:8 大小:15.83KB
下载 相关 举报
QT中封装的IP地址的widgetCWord文档格式.docx_第1页
第1页 / 共8页
QT中封装的IP地址的widgetCWord文档格式.docx_第2页
第2页 / 共8页
QT中封装的IP地址的widgetCWord文档格式.docx_第3页
第3页 / 共8页
QT中封装的IP地址的widgetCWord文档格式.docx_第4页
第4页 / 共8页
QT中封装的IP地址的widgetCWord文档格式.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

QT中封装的IP地址的widgetCWord文档格式.docx

《QT中封装的IP地址的widgetCWord文档格式.docx》由会员分享,可在线阅读,更多相关《QT中封装的IP地址的widgetCWord文档格式.docx(8页珍藏版)》请在冰豆网上搜索。

QT中封装的IP地址的widgetCWord文档格式.docx

classQWidget;

classQFocusEvent;

classQKeyEvent;

classMyIpPartLineEdit:

publicQLineEdit

{

Q_OBJECT

public:

MyIpPartLineEdit(QWidget*parent=0);

~MyIpPartLineEdit(void);

voidset_nexttab_edit(QLineEdit*nexttab){next_tab_=nexttab;

}protected:

virtualvoidfocusInEvent(QFocusEvent*e);

virtualvoidkeyPressEvent(QKeyEvent*event);

privateslots:

voidtext_edited(constQString&

amp;

text);

private:

QLineEdit*next_tab_;

};

//MyIpPartLineEdit.cpp

#include"

MyIpPartLineEdit.h"

#include&

QIntValidator&

QKeyEvent&

MyIpPartLineEdit:

:

MyIpPartLineEdit(QWidget*parent/*=0*/)

QLineEdit(parent)

next_tab_=NULL;

this-&

setMaxLength(3);

setFrame(false);

setAlignment(Qt:

AlignCenter);

QValidator*validator=newQIntValidator(0,255,this);

setValidator(validator);

connect(this,SIGNAL(textEdited(constQString&

)),this,SLOT(text_edited(constQString&

)));

}MyIpPartLineEdit:

~MyIpPartLineEdit(void)

}voidMyIpPartLineEdit:

focusInEvent(QFocusEvent*e)

selectAll();

QLineEdit:

focusInEvent(e);

keyPressEvent(QKeyEvent*event)

if(event-&

key()==Qt:

Key_Period)

{

if(next_tab_)

next_tab_-&

setFocus();

}

keyPressEvent(event);

text_edited(constQString&

text)

QIntValidatorv(0,255,this);

QStringipaddr=text;

intpos=0;

QValidator:

Statestate=v.validate(ipaddr,pos);

if(state==QValidator:

Acceptable)

if(ipaddr.size()&

1)

if(ipaddr.size()==2)

intipnum=ipaddr.toInt();

if(ipnum&

25)

}

else

}

MyIpAddrEdit.h

QWidget&

classQLineEdit;

classQLabel;

classMyIpPartLineEdit;

classMyIpAddrEdit:

publicQWidget

MyIpAddrEdit(QWidget*pParent=0);

~MyIpAddrEdit();

voidsettext(constQString&

text);

QStringtext();

voidsetStyleSheet(constQString&

styleSheet);

signals:

voidtextchanged(constQString&

voidtextedited(constQString&

privateslots:

voidtextchangedslot(constQString&

voidtexteditedslot(constQString&

MyIpPartLineEdit*ip_part1_;

MyIpPartLineEdit*ip_part2_;

MyIpPartLineEdit*ip_part3_;

QLineEdit*ip_part4_;

QLabel*labeldot1_;

QLabel*labeldot2_;

QLabel*labeldot3_;

//MyIpAddrEdit.cpp

MyIpAddrEdit.h"

QRegExpValidator&

QLabel&

MyIpAddrEdit:

MyIpAddrEdit(QWidget*pParent/*=0*/)

QWidget(pParent)

ip_part1_=newMyIpPartLineEdit(this);

ip_part2_=newMyIpPartLineEdit(this);

ip_part3_=newMyIpPartLineEdit(this);

ip_part4_=newMyIpPartLineEdit(this);

labeldot1_=newQLabel(this);

labeldot2_=newQLabel(this);

labeldot3_=newQLabel(this);

ip_part1_-&

setGeometry(QRect(0,0,30,20));

ip_part2_-&

setGeometry(QRect(30,0,30,20));

ip_part3_-&

setGeometry(QRect(60,0,30,20));

ip_part4_-&

setGeometry(QRect(90,0,30,20));

labeldot1_-&

setText("

."

setGeometry(QRect(27,1,6,18));

labeldot2_-&

setGeometry(QRect(57,1,6,18));

labeldot3_-&

setGeometry(QRect(87,1,6,18));

QWidget:

setTabOrder(ip_part1_,ip_part2_);

setTabOrder(ip_part2_,ip_part3_);

setTabOrder(ip_part3_,ip_part4_);

set_nexttab_edit(ip_part2_);

set_nexttab_edit(ip_part3_);

set_nexttab_edit(ip_part4_);

connect(ip_part1_,SIGNAL(textChanged(constQString&

)),this,SLOT(textchangedslot(constQString&

connect(ip_part2_,SIGNAL(textChanged(constQString&

connect(ip_part3_,SIGNAL(textChanged(constQString&

connect(ip_part4_,SIGNAL(textChanged(constQString&

connect(ip_part1_,SIGNAL(textEdited(constQString&

)),this,SLOT(texteditedslot(constQString&

connect(ip_part2_,SIGNAL(textEdited(constQString&

connect(ip_part3_,SIGNAL(textEdited(constQString&

connect(ip_part4_,SIGNAL(textEdited(constQString&

}MyIpAddrEdit:

~MyIpAddrEdit()

{}voidMyIpAddrEdit:

textchangedslot(constQString&

/*text*/)

QStringippart1,ippart2,ippart3,ippart4;

ippart1=ip_part1_-&

text();

ippart2=ip_part2_-&

ippart3=ip_part3_-&

ippart4=ip_part4_-&

QStringipaddr=QString("

%1.%2.%3.%4"

.arg(ippart1)

.arg(ippart2)

.arg(ippart3)

.arg(ippart4);

emittextchanged(ipaddr);

}voidMyIpAddrEdit:

texteditedslot(constQString&

/*text*/)

emittextedited(ipaddr);

settext(constQString&

text)

QStringqstring_validate=text;

//IP地址验证

QRegExpregexp("

QRegExpValidatorregexp_validator(regexp,this);

intnPos=0;

Statestate=regexp_validator.validate(qstring_validate,nPos);

//IP合法

QStringListippartlist=text.split("

."

intstrcount=ippartlist.size();

intindex=0;

if(index&

strcount)

ippart1=ippartlist.at(index);

if(++index&

ippart2=ippartlist.at(index);

ippart3=ippartlist.at(index);

ippart4=ippartlist.at(index);

}ip_part1_-&

setText(ippart1);

setText(ippart2);

setText(ippart3);

setText(ippart4);

}QStringMyIpAddrEdit:

text()

returnQString("

setStyleSheet(constQString&

styleSheet)

setStyleSheet(styleSheet);

下面是调用方法

QApplication&

QDialog&

intmain(intargc,char*argv[])

QApplicationapp(argc,argv);

QDialog*my_dialog=newQDialog;

MyIpAddrEdit*ipAddr=newMyIpAddrEdit(my_dialog);

ipAddr-&

settext("

127.0.0.1"

my_dialog-&

show();

returnapp.exec();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1