Category Archives: 原创
Mac 与 IP 修改器
因为经常要在不同的地点更换 mac 和 ip,所以就自己动手写了这个小工具。主要功能: 不重启计算机修改 mac。 修改网络地址参数,比如 ip、子网掩码、网关和 DNS。 也可以将上述参数通过 DHCP 来获取。 保存和读取配置,方便在不同地点调用不同的配置。 截图如下: 这个小工具是用 Qt 4.6.3 写成的,修改 mac 是通过更改注册表来完成的,之后调用 windows api 来实现网卡重启,这个是参考别人的代码。地址的修改是通过 netsh 命令完成的,工具开源,所以有兴趣的同学请给予指导,项目地址:http://code.google.com/p/klniu/ 因为库文件比较大,所以工具整体比较大,有两个版本,一个是动态链接版本,包含多个动态链接库。另一个是静态链接,是一个单文件,请大家自行选择使用。下载地址: 动态链接版本:http://klniu.googlecode.com/files/macmanager_1.0_dynamic.7z 静态链接版本:http://klniu.googlecode.com/files/macmanager_1.0_static.7z 源代码:http://klniu.googlecode.com/files/macmanager_1.0_src.7z
QNetworkInterface 类
QNetworkInterface 是一个管理网络连接的类,利用他可以枚举本机的网络连接并获取其属性。比较常用的函数有: QList<QNetworkAddressEntry> QNetworkInterface::addressEntries() 获取地址列表,应用如下: //原型 QList<QNetworkAddressEntry> QNetworkInterface::addressEntries () const //比如获取本地所有 ip 和 netmask //allInterfaces() 是一个静态函数,用于获取本机所以连接。 QList<QNetworkInterface> networkInterface = QNetworkInterface::allInterfaces(); for (QList<QNetworkInterface>::const_iterator i = networkInterface.const_Begin(); i != networkInterface.const_End(); ++i) { //获取连接地址列表 QList<QNetworkAddressEntry> addressEntriesList = (*i).addressEntries(); for (QList<QNetworkAddressEntry>::const_iterator j = addressEntriesList.constBegin(); … Continue reading
C++ 编程易犯错误-类指针成员未初始化
在 C++ 编程过程中,如果类体内声明的数据成员为指针变量,就需要在构造函数中初始化,否则就会出现内在不能为 written 的错误,因此导致程序退出,对于此,编译器并不提示,所以做到使用前初始化还是比较好的。
我们被骗了
昨天和一些同学在一起吃饭,聊到了张悟本,现在大家都知道他是个骗子,有位同学还说买过张悟本的一本书,感觉挺尴尬,因为被骗总是一个让人很痛苦和伤心的事情。 不过这些事情实际上也没什么好丢人和尴尬的,幸运的是张悟本犯的错还不算太大,没有给人造成不可挽回的痛苦,被骗也就被骗了,在现在这个国家,想不被骗,那恐怕要到棺材里才行。 最重要的不是被骗了,而是被谁给骗了,假若你现在并不知道张悟本,他也没在电视台出现过,他说过的话你肯定不会那么相信的,所以,我们不是在相信张悟本,而是官媒,一个可以说白为黑,也可以说黑为白的群体,仅仅靠一支笔或一张嘴,就可以让我们相信这个而不相信那个的代表中国先进文化的前进方向的媒体。不是每个人都懂医学和养生的,但是我们需要健康,于是我们就从各种渠道寻找这些信息,于是,我们就被官媒骗了,所以没什么丢人的,就像被父母小骗了一下一样,我们不必要念念不忘。 好了,这次我们忍了,因为人都有办错事的时候。后来,我又看到了好多不一样的东西,我们的兄弟被矿难了,官方说没死人;被洪水了,还要交钱来赈灾;从官媒上我们所看到的是在官员的辛苦有效指挥和领导下,我们战胜一个又一个天灾,给人民带来了幸福安康的生活,哗,一片和谐。我知道,我们的“父母”又在骗我们了,这个父母也许从来就没生下过我们,我们是领养的,我们代表不了自己,哪怕他们说他们是人民选出来的,代表最广大人民的利益的,就像我们的监护人一样,这个才是最大的骗局。 所以被骗不是什么伤心的事,只是有点悲哀罢了,也有一点幸运在里面,你这一次没把我骗死,我终于认识你了!
QWizard下一步按钮的控制
QWizard是Qt的向导类,在向导过程中,可以通过函数registerField注册字段实现全局访问,而且可以通过4种方法来控制下一步或者完成按钮的可用性: 第一种方法,isComplete函数,其应用于QWizardPage,可控制单个向导页面的“下一步”或者“完成”按钮的可用性,函数如下: bool QWizardPage::isComplete () const[virtual] 下面是isComplete的实现,源码来源于 http://doc.qt.nokia.com/qq/qq22-qwizard.html#validatebeforeitstoolate 首先重新实现QWizardPage::isComplete()函数 bool SailingPage::isComplete() const { return field("sailing").toDate().dayOfWeek() != Qt::Sunday; } 连接输入框或者其他需要监视的对象的信号与QWizardPage::completeChanged ()信号。 connect(sailing, SIGNAL(selectionChanged()), this, SIGNAL(completeChanged())); 当然也可以自己执行QWizardPage::completeChanged ()信号,即自行编写完成检查函数后执行信号: emit completeChanged() 第二种方法,hasAcceptableInput函数,用于QLineEdit,如果hasAcceptableInput为false,则按钮会变灰。 bool hasAcceptableInput () const 第三种方法,registerField函数,第一个参数name后加星号,例如field*,就可以保证如果此区域不填写,下一步按钮将始处于灰色状态。 void QWizardPage::registerField ( const QString & … Continue reading