第二个Qt被qt 管理员权限ip封号,第一个qt为啥也上不去是封的电脑ip吗

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
QString&Widget::getIP()&&//获取ip地址&&{&&&&&&QList&QHostAddress&&list&=&QNetworkInterface::allAddresses();&&&&&&foreach&(QHostAddress&address,&list)&&&&&&{&&&&&&&&&if(address.protocol()&==&QAbstractSocket::IPv4Protocol)&&//我们使用IPv4地址&&&&&&&&&&&&&&return&address.toString();&&&&&&}&&&&&&&&&return&0;&&}&&&& &&上面的方法,在我机器上会有多个IPV4地址,还是下面这个方法更好。&Cpp代码&&QString&localHostName&=&QHostInfo::localHostName();&&&&qDebug()&&&"localHostName:"&&localHostN&&QHostInfo&info&=&QHostInfo::fromName(localHostName);&&&&foreach(QHostAddress&address,info.addresses())&&&&{&&&&&&if(address.protocol()&==&QAbstractSocket::IPv4Protocol)&&&&&&&&&&&&&&&&&&&&&&qDebug()&&&"IPV4&Address:&"&&&address.toString();&&&&} &
阅读(13910)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'用QT获取本机IP',
blogAbstract:'下面我们就讲解如何获取自己电脑的IP地址以及其他网络信息。这一节中,我们会涉及到网络模块(QtNetwork Module)中的QHostInfo ,QHostAddress ,QNetworkInterface和QNetworkAddressEntry等几个类。下面是详细内容。我们新建Qt4 Gui Application 工程,工程名为myIP ,选中QtNetwork模块,Base class选择QWidget。',
blogTag:'',
blogUrl:'blog/static/84',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:4,
permalink:'blog/static/84',
commentCount:0,
mainCommentCount:0,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}3246人阅读
Qt学习(34)
Qt作为界面框架,已经非常完善了。但是,也不是尽善尽美,IP输入框作为开发中使用很频繁的一个控件,Qt竟然没有实现,也是醉了。不过,我们自己也可以实现,并不是很复杂。
先来看下最终实现的效果:
使用起来还算顺手,实现了以下一些方便的操作:
1.连续输入;
2.连续删除;
3.任意位置插入;
4.自适应大小变化。
5.正则匹配,每个值不大于255。设置IP值时,有正则进行验证是否是IP格式。
实现方法,使用一个大的QLineEdit嵌套四个小的QLineEdit,中间的点是使用paintEvent画出来的。操作是使用eventFilter来进行分发实现的。
实现代码:
/************************************************************************/
/* 作者:徐冬冬
博客网址:http://blog.csdn.net/u
/************************************************************************/
#ifndef QIPLINEEDIT_H
#define QIPLINEEDIT_H
#include &QLineEdit&
#include &QEvent&
class QIPLineEdit : public QLineEdit
QIPLineEdit(QWidget *parent = 0);
~QIPLineEdit();
void setText(const QString &strIP);
QString text()
protected:
void paintEvent(QPaintEvent *event);
bool eventFilter(QObject *obj, QEvent *ev);
int getIndex(QLineEdit *pEdit);
bool isTextValid(const QString &strIP);
QLineEdit *m_lineEidt[4];
#endif // QIPLINEEDIT_H
/************************************************************************/
/* 作者:徐冬冬
博客网址:http://blog.csdn.net/u
/************************************************************************/
#include &qiplineedit.h&
#include &QRegExpValidator&
#include &QPainter&
#include &QHBoxLayout&
#include &QKeyEvent&
#include &QMessageBox&
#include &QDebug&
QIPLineEdit::QIPLineEdit(QWidget *parent)
: QLineEdit(parent)
QRegExp rx(&(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2})&);
QHBoxLayout *pHBox = new QHBoxLayout(this);
pHBox-&setSpacing(10);
pHBox-&setContentsMargins(0, 0, 0, 0);
for (int i = 0; i & 4; i++)
m_lineEidt[i] = new QLineEdit(this);
m_lineEidt[i]-&setFrame(false);
m_lineEidt[i]-&setMaxLength(3);
m_lineEidt[i]-&setAlignment(Qt::AlignCenter);
m_lineEidt[i]-&installEventFilter(this);
m_lineEidt[i]-&setValidator(new QRegExpValidator(rx, this));
m_lineEidt[i]-&setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
pHBox-&addWidget(m_lineEidt[i]);
this-&setReadOnly(true);
QIPLineEdit::~QIPLineEdit()
void QIPLineEdit::paintEvent(QPaintEvent *event)
__super::paintEvent(event);
QPainter painter(this);
brush.setStyle(Qt::BrushStyle::SolidPattern);
brush.setColor(Qt::black);
painter.setBrush(brush);
int width = 0;
for (int i = 0; i & 3; i++)
width += m_lineEidt[i]-&width() + (i == 0 ? 3 : 10);//布局的间隔
painter.drawEllipse(width, height() / 2 - 2, 4, 4);
int QIPLineEdit::getIndex(QLineEdit *pEdit)
int index = -1;
for (int i = 0; i & 4; i++)
if (pEdit == m_lineEidt[i])
bool QIPLineEdit::eventFilter(QObject *obj, QEvent *ev)
if (children().contains(obj) && QEvent::KeyPress == ev-&type())
QKeyEvent *keyEvent = dynamic_cast&QKeyEvent *&(ev);
QLineEdit *pEdit = qobject_cast&QLineEdit *&(obj);
switch (keyEvent-&key())
case Qt::Key_0:
case Qt::Key_1:
case Qt::Key_2:
case Qt::Key_3:
case Qt::Key_4:
case Qt::Key_5:
case Qt::Key_6:
case Qt::Key_7:
case Qt::Key_8:
case Qt::Key_9:
QString strText = pEdit-&text();
if (pEdit-&selectedText().length())
pEdit-&text().replace(pEdit-&selectedText(), QChar(keyEvent-&key()));
else if (strText.length() == 3 || strText.length() & 3 && strText.toInt() * 10 & 255)
int index = getIndex(pEdit);
if (index != -1 && index != 3)
m_lineEidt[index + 1]-&setFocus();
m_lineEidt[index + 1]-&selectAll();
else if (strText.length() == 2 && strText.toInt() * 10 & 255)
if (Qt::Key_0 == keyEvent-&key() && strText.toInt())
pEdit-&setText(strText.insert(pEdit-&cursorPosition(), QChar(Qt::Key_0)));
return __super::eventFilter(obj, ev);
case Qt::Key_Backspace:
QString strText = pEdit-&text();
if (!strText.length() || strText.length() && !pEdit-&cursorPosition())
int index = getIndex(pEdit);
if (index != -1 && index != 0)
m_lineEidt[index - 1]-&setFocus();
int length = m_lineEidt[index - 1]-&text().length();
m_lineEidt[index - 1]-&setCursorPosition(length ? length : 0);
return __super::eventFilter(obj, ev);
case Qt::Key_Left:
if (!pEdit-&cursorPosition())
int index = getIndex(pEdit);
if (index != -1 && index != 0)
m_lineEidt[index - 1]-&setFocus();
int length = m_lineEidt[index - 1]-&text().length();
m_lineEidt[index - 1]-&setCursorPosition(length ? length : 0);
return __super::eventFilter(obj, ev);
case Qt::Key_Right:
if (pEdit-&cursorPosition() == pEdit-&text().length())
int index = getIndex(pEdit);
if (index != -1 && index != 3)
m_lineEidt[index + 1]-&setFocus();
m_lineEidt[index + 1]-&setCursorPosition(0);
return __super::eventFilter(obj, ev);
void QIPLineEdit::setText(const QString &strIP)
if (!isTextValid(strIP))
QMessageBox::warning(this, &Attention&, &Your IP Address is Invalid!&, QMessageBox::StandardButton::Ok);
int i = 0;
QStringList ipList = strIP.split(&.&);
for each (QString ip in ipList)
m_lineEidt[i]-&setText(ip);
bool QIPLineEdit::isTextValid(const QString &strIP)
QRegExp rx2(&\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b&);
if (!rx2.exactMatch(strIP))
QString QIPLineEdit::text() const
QString strIP;
for (int i = 0; i & 4; i++)
strIP.append(m_lineEidt[i]-&text());
return strIP;
本文地址:
源码下载:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:182211次
积分:2979
积分:2979
排名:第12376名
原创:105篇
转载:19篇
评论:73条
阅读:1568
阅读:1361
文章:12篇
阅读:15125
文章:32篇
阅读:78963
文章:39篇
阅读:52536
(2)(2)(1)(4)(6)(1)(14)(3)(6)(4)(1)(4)(5)(7)(25)(20)(1)(4)(4)(7)(1)(1)(1)(1)(1)(1)(2)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'qt语音盒子是一款多开、抢麦、刷心、外宣等功能为一体的神奇辅助工具,由qt语音社区震撼出品,qt语音盒子具有独一性,这是qt语音平台目前仅有的功能最好,最完善的软件。功能介绍:qt定时类:可挂机领取亲密度,摇摇乐等[后期会继续开发]qt辅助类:批量进退频道,送心,送花,改名[暂时只能普通房间,和单一昵称]后期会开发,一键改名[qt昵称],和自定义昵称! 抢麦功能[支持自定义抢麦]qt场控类:定时发指定内容,并且拥有自适应功能,支持任何频道qt机器人:目前仅支持间,可以通过指令触发,需要发出的文本!【测试版】更新日志:新增:解封IP[只可解除IP,不可解ID]新增:qt场控助手功能,官方网站:相关下载6.86 MB / 22.89 MB / 15.48 MB / 319 KB / 29.2 MB / 902 KB / 6.71 MB / 2.93 MB / 4.52 MB / 相关文章QT盒子下载地址高速下载普通下载发表评论网页评论下载帮助下载建议:推荐使用 [] 或 [] 下载本站资源。并使用 [] 3.5 以上版本解压本站资源。解压密码:本站部分资源经过压缩加密处理,解压密码为:。版权声明:本站资源版权归其开发商所有,若无意侵犯到您的权利,请及时与本站联系,我们会尽快为您处理。65.59 MB | 14.05 MB | 音频工具排行340661852468776272396437973578295427522703多媒体类分类装机必备软件35.7 MB | 42.53 MB | 67.13 MB | 32.52 MB | 38.87 MB | 63.78 MB | 34.48 MB | 80 MB | 2.02 MB | 39.7 MB | 46.42 MB | 46.47 MB | 31.82 MB | 67.82 MB | 31.72 MB | 27.62 MB | 41.97 MB | 27.91 MB | 35.36 MB |07-2208-2209-1707-20
09-1003-2804-0109-10
◇本站云标签

我要回帖

更多关于 qt5.8第一个程序 的文章

 

随机推荐