- 博客(39)
- 资源 (3)
- 收藏
- 关注
转载 理解可变参数va_list、va_start、va_arg、va_end原理及使用方法
参考:http://www.360doc.com/content/12/0309/10/4025635_192940551.shtmlhttp://www.cnblogs.com/AnnieKim/archive/2011/11/25/ellipsis.htmlhttp://intijk.com/others/va_list-%E7%9A%84%E7%94%A8%E6%B3%9
2015-04-30 22:37:04 1116
原创 libevent中的时间及相关的管理
libevent中的时间及相关的管理在介绍时间之前,先说明几个与时间相关的函数及其用法1、基础1.1 clock_gettime(精度比较高,ns级)#include int clock_gettime(clockid_t clk_id, struct timespec *tp);clk_id:检索和设置的clk_id指定的时钟时间CLOCK_REALTIM
2015-04-29 23:27:12 1296
转载 Qt Designer 编辑Tab顺序
很简单!在Qt Designer 中点击“编辑Tab顺序“按钮进入编辑Tab顺序模式,如下图:之后界面会变成这样:点击那些包含数字的蓝色小方框就可以设置Tab顺序了,你第一次点击的数字方框那么该控件的Tab顺序会排在第一位,以此类推。简单吧!
2015-04-28 13:18:28 6176 2
原创 libevent中的hash表
libevent中的hash表的代码在ht-internal文件中,在添加io事件,signal事件时,底层是在操作event_io_map和event_signal_map1、 hash的结构(开链)libevent中的hash表是用宏来定义的#define HT_HEAD(name, type)
2015-04-27 22:08:06 897
原创 qt中关闭窗口资源释放问题
针对QDialog对象,如果是栈上分配的,就不存在资源泄漏问题,但是当对象是new出来的,并且以局部对像存在,每次exec后者需要delete来释放,另外一种方法是在QDialog中设置属性:setAttribute(Qt::WA_DeleteOnClose, true);
2015-04-27 15:53:15 5670
转载 qt的Esc键
Esc键对大家来说实在熟悉不过的了,在Qt中Esc键也会默认的进行一些事件的触发,今天对Esc键测试了一下,突然发现不像我想象的那样,在QDialog中按下Esc键会默认调用reject()方法而不是closeEvent(QCloseEvent *event)或者其他事件。所以在这里如何管理和操作Esc键呢? 1、重新实现reject()方法 void LoginD
2015-04-27 15:44:03 1601
原创 cygwin的安装
从http://www.cygwin.com/下载Cygwin选择安装binutilsgcc-coregcc-g++gdbgcc-mingw-coregcc-mingw-g++
2015-04-25 09:53:15 499
转载 Win8总提示安装FLASH插件怎么办?
解决方案: 1. 进入IE浏览器打开管理加载项,观察flash的加载项是否被禁用,如果禁用请启动该加载项; 2. 通过微软网站下载微软补丁; http://go.microsoft.com/fwlink/?LinkId=252627 64bit http://go.microsoft.com/fwlink/?LinkId=252626 32bit 3. 如
2015-04-24 21:43:11 1057
转载 UDP打洞
描述通过UDP路由验证实现NAT穿越是一种在处于使用了NAT的私有网络中的Internet主机之间建立双向UDP连接的方法。由于NAT的行为是非标准化的,因此它并不能应用于所有类型的NAT。其基本思想是这样的:让位于NAT后的两台主机都与处于公共地址空间的、众所周知的第三台服务器相连,然后,一旦NAT设备建立好UDP状态信息就转为直接通信,并寄希望于NAT设备会在分组其实是从另外一
2015-04-24 16:45:12 510
转载 结构体初始化
今天同事聊到内核中结构体初始化,对结构体struct a {int b;int c;}有几种初始化方式:struct a a1 = { .b = 1, .c = 2};或者struct a a1 = { b:1, c:2}或者struct a a1 = { 1, 2};内核喜欢用第一种,使用第一
2015-04-24 15:53:18 691
原创 QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connect
qt中连接mysql数据库时提示这个问题,是因为重复调用 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");在没有指定连接名,默认连接名为qt_sql_default_connection,要避免这个问题,在添加时指定一个连接名,同时在每次添加时,先判断有没有这个连接名,代码如下QSqlDatabase db = QSqlDatabase:
2015-04-23 11:46:55 13502
原创 Qt读写ini文件的问题
qt中写ini文件,ini文件中格式严格要求key=value,对于不包含有等于号的key会将其去年比如my.ini配置文件中的为[mysqldump]quickmax_allowed_packet = 16M[mysql]no-auto-rehash[myisamchk]key_buffer_size = 256Msort_buffer_size = 256Mread
2015-04-23 10:34:17 2330
转载 MySQL删除表数据
在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。 如果要清空表中的所有记录,可以使用下面的两种方法: DELETE FROM table1 TRUNCATE TABLE ta
2015-04-22 18:44:43 667
原创 qt读写xml文件
写xml文件,以QDomText方式写,代码如下QFile file("d:/test.txt");file.open(QIODevice::WriteOnly);QDomDocument doc;QDomProcessingInstruction instruction;instruction = doc.createProcessingInstruction("xml", "v
2015-04-21 22:03:04 4013
原创 qt连接mysql提示QMYSQL driver not loaded
1、下载 mysql-5.6.24-win322、在qt源码路径Src\qtbase\src\plugins\sqldrivers\mysql中找到MySQL.pro工程文件,添加外部库,即第一步中libmysql.lib的目录,编译生成的文件在src/qtbase/plugins/sqldrivers,将qsqlmysql.dll,qsqlmysqld.dll和qsqlmysqld.pdb复
2015-04-21 21:00:07 1167
原创 修改进程权限
1、首先调用OpenProcessToken获取进程的令牌2、根据要修改的权限名称找到对应的luid,这是通过调用LookupPrivilegeValue3、调用AdjustTokenPrivileges来修改权限代码如下bool improveProcPriv(LPCTSTR str) { HANDLE token; if (!::OpenProcessTo
2015-04-18 22:47:05 822
原创 qt中递归复制目录
//比如要a拷到b目录,目标目录要写成b/abool copyRecursively(const QString &srcFilePath, const QString &tgtFilePath){ QFileInfo srcFileInfo(srcFilePath); if (srcFileInfo.isDir()) { QDir targetDir(tgtFilePath);
2015-04-17 23:48:35 1166
转载 UDP和TCP中的伪首部
伪首部,通常有TCP伪首部和UDP伪首部。在UDP伪首部中,包含32位源IP地址,32位目的IP地址,8位协议,16位UDP长度。通过伪首部的校验,UDP可以确定该数据报是不是发给本机的,通过首部协议字段,UDP可以确认有没有误传。1. 伪首部并非TCP&UDP数据报中实际的有效成分。伪首部是一个虚拟的数据结构,其中的信息是从数据报所在IP分组头的分组头中提取的,既不向下传送也不向上递
2015-04-17 23:02:07 3775
原创 Qt中QAbstractTableModel、QItemDelegate的联合使用
1、继承QAbstractTableModel实现CurrencyModel,需要重写的函数有introwCount(constQModelIndex&parent)const; //返回表的行数intcolumnCount(constQModelIndex&parent)const;//返回表的列数QVariantheaderData(ints
2015-04-16 22:21:24 3956
转载 Qt Model/View 学习笔记 (四)
创建新的Models介绍model/view组件之间功能的分离,允许创建model利用现成的views。这也可以使用标准的功能 图形用户接口组件像QListView,QTableView和QTreeView来显示来自各种数据源的数据为。QAbstractListModel类提供了非常灵活的接口,允许数据源以层次结构的形式来管理信息,也允许以某种方式对数据进行插入、删除、
2015-04-15 22:11:28 692
转载 Model/View 教程
说明:这篇博客基本都是翻译于Qt官方的Model/View Tutorial教程,无法理解的地方建议转到原文,同时,由于译者水平有限,如有差错欢迎指出。原文:http://qt-project.org/doc/qt-5/modelview.html转载注明出处:http://www.cnblogs.com/bestheart/p/3707584.html须知符号:(:…译者自己
2015-04-15 22:05:22 1779
原创 Qt中服务的管理
1、从https://qt.gitorious.org/qt-solutions上下载qtservice,用Qt Creator 打开 buildlib下的buildlib.pro工程,编译后生成lib目录,包含了QtSolutions_Service-head.lib和QtSolutions_Service-head.dll文件。2、新建工程,添加库选择添加外部库选择库目录
2015-04-12 22:10:45 3668 1
原创 Qt中的文件、目录
1、目录类名为QDirQString QDir::absolutePath() const返回的是目录的绝对路径(可能是快捷方式),路径名中不会包含有.和..QString QDir::canonicalPath() const返回的是目录的绝对路径(不是快捷方式),路径名中不会包含有.和..QString dirName() const返回的是仅仅是目录名,如d:\d
2015-04-12 12:38:40 2049
转载 lib和dll文件的区别和联系
什么是lib文件,lib和dll的关系如何 (2008-04-18 19:44:37) (1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dl
2015-04-11 23:41:44 463
原创 Qt连接MySQL
qt中连接mysql的代码如下QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("localhost"); //设置主机名db.setPort(3306);//设置端口号db.setDatabaseName("sakila"); //设置数据库名db.setUserName("root");
2015-04-11 22:55:31 661
转载 tcp和udp的区别
(1)TCP是面向连接的传输控制协议,而UDP提供了无连接的数据报服务;(2)TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;(3)也正因为以上特征,UDP具有较好的实时性,工作效率较TCP协议高;(4)UDP段结构比
2015-04-11 18:45:47 532
转载 滑动窗口
1基本信息简介滑动窗口(Sliding window )是一种流量控制技术。早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据。由于大家不知道网络拥塞状况,一起发送数据,导致中间结点阻塞掉包,谁也发不了数据。所以就有了滑动窗口机制来解决此问题。参见滑动窗口如何根据网络拥塞发送数据仿真视频。图片是一个滑动窗口的实例:滑动窗口协议是用来改善吞吐量的一种技术,即容许
2015-04-11 18:43:51 2047
转载 负载均衡算法
负载均衡的发展基础就是负载均衡算法。那么针对不同的服务器我们也会采用不同的负载均衡算法,因为他们所具备的和要求的功能各不相同。那么我们现在就来详细了解一下这方面的知识。希望能让大家从中得到需要的东西。服务器负载均衡算法有很多(持续性的和非持续性的),包括轮循算法、最少连接算法、响应时间算法、散列算法、最少连接失误算法,链路带宽算法等等。此外实际服务器(RealServer)可以被分
2015-04-11 18:29:38 799
转载 进程与线程的区别联系
一。什么是进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 系统资源:线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同
2015-04-11 18:25:44 396
原创 Qt中用ODBC连接excel中文乱码问题
用ODBC连接读取excel文件中的中文表名时,返回的结果为乱码,是因为qt源代码中获取表名中的函数QStringList QODBCDriver::tables(QSql::TableType type) const在获取字符串值时,不是以unicode方式读的QString fieldVal = qGetStringData(hStmt, 2, -1, false)将false改为tr
2015-04-10 22:51:57 2261
原创 qt用ODBC连接excel
1、连接2007之前的excelQString dbName="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=D:\\book.xls";注意Driver与(间要有空格DBQ表示要连接的excel文件参考资料:http://www.connectionstrings.
2015-04-09 22:15:48 2850
原创 MySQL5.5下载地址
http://dev.mysql.com/downloads/windows/installer/5.5.html#current-tab
2015-04-09 16:08:27 1214
原创 Qt中用QuaZip来压缩和解压缩文件
1、简介QuaZIP是使用Qt,C++对ZLIB进行简单封装的用于压缩ZIP以及解压缩ZIP的开源库。如果你的Qt项目当中用到了压缩以及解压缩ZIP的话你可以考虑选择使用它。官方主页:http://quazip.sourceforge.net/souceforge下载地址:http://sourceforge.net/projects/quazip/2、编译QuaZip是基于Z
2015-04-08 22:46:57 12454 9
原创 QDir::toNativeSeparators的使用
Qt是跨平台的,windows的文件路径分隔符是\,而linux的分隔符为/,要实现window下编写的程序直接应用到linux下, 在构造文件路径时,可以用QDir::toNativeSeparators
2015-04-08 09:41:45 10197
原创 Qt的UDP编程
实现的是用户登录既是服务器端也是客户端。服务器端:创建UDP端口,绑定固定端口,用信号和槽机制来监听是否有数据来临,如果有,读取数据的消息类型,如果是新用户登录消息,读取新用户信息,在用户列表中添加用户信息,如果是聊天信息,读取信息,显示在聊天窗口中。如果是下线信息,就读取用户信息,用户列表中删除,流程如下:
2015-04-06 13:04:09 2570
原创 Qt添加调试器
1、打开网页:https://msdn.microsoft.com/en-us/windows/hardware/hh852365选择标识的下载2、重新启动QtCreator就可以
2015-04-05 21:47:51 733
原创 QTableView中点击单元格弹出QComboBox
主要是用QItemDelegate,写一个类继承QItemDelegate,实现createEditor(),setEditorData()和setModelData()方法createEditor()实现当双击时,弹出的QComboBox中显示的内容QWidget * ItemDelegate::createEditor(QWidget *parent, const QStyleOpti
2015-04-05 11:42:05 11108 1
原创 Qt中打开文件对话框和保存文件对话框
主要是用QFileDialog的两个静态方法1、打开对话框QString getOpenFileName(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(),
2015-04-02 10:12:43 2379
原创 QListView的使用
QListView与QTreeView一样,也是采取的mvc模式,添加数据时,用相应的模式1、初始化时添加数据QStandardItemModel *model = new QStandardItemModel(this);QStandardItem *item = new QStandardItem("item1");model->appendRow(item);item = ne
2015-04-02 09:10:18 8303
Ubuntu Linux实用学习教程.pdf
2009-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人