QT编程学习
文章平均质量分 67
Linux菜_鸟
努力学习Linux中
展开
-
QT中的快捷键使用
激活欢迎模式Ctrl + 1激活编辑模式Ctrl + 2激活调试模式 Ctrl + 3激活项目模式 Ctrl + 4激活帮助模式 Ctrl + 5激活输出模式 Ctrl + 6查找当前文档 Ctrl + F查找下一个 F3查找上一个 Shift + F3弹出查找对话框 Ctrl + Shift + F返回到代码编辑状态 Esc页面之间切换 Alt转载 2013-08-05 18:31:24 · 1410 阅读 · 0 评论 -
Qt中处理First chance exception异常
不要放过First-chance exception1)什么是First-chance exception VC6调试环境下(debug)运行程序时,经常在output窗口看到有 First-chance exception in hotfoxd.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception. 的输出字样。 当调转载 2013-09-22 14:11:20 · 3920 阅读 · 0 评论 -
记QDialog中exec、show、hide等函数要点
QWidget 的show()、hide()、setVisible()、setHidden() 这4个函数让人看得眼花缭乱,但是打开源代码一看,原来最终调用的只是一个函数:setVisible(bool visible) (注意这些只是QWideget中是这样,而对话框因为加入了获取返回值的功能,所以有区别)。QWidget的close :这个函数在Qt的帮助文档中描述得很详细,它的执原创 2013-11-23 14:15:57 · 13012 阅读 · 0 评论 -
QT鲜为人知的工具类之QPointer
玩C++的人都喜欢用指针,比如下面的代码: QLabel* label = new QLabel; QLabel* label2 = label; label->setText("&Status:"); ...... delete label2; label2 = 0; ...... if (label转载 2013-11-26 16:03:56 · 2214 阅读 · 1 评论 -
使用Qt库时出现winsock2.h和windos.h包含顺序错误
同时使用Qt与mms.lite库时时,在互相包含头文件时出现了winsock2.h和windos.h包含顺序错误的出错信息(一大堆重定义错误)。查找mms.lite库发现在sysincs.h中已经有对这两个头文件包含顺序的处理,如下所示:/* winsock2.h MUST ALWAYS BE BEFORE windows.h to override defs in *//* winsoc原创 2013-11-27 15:01:37 · 2944 阅读 · 0 评论 -
解决warning C4003: “min”宏的实参不足
错误信息如下:1>f:\qt\qt5.1.1\5.1.1\msvc2010\include\qtcore\qdatetime.h(121): warning C4003: “min”宏的实参不足1>f:\qt\qt5.1.1\5.1.1\msvc2010\include\qtcore\qdatetime.h(121): error C2589: “(”:“::”右边的非法标记1>f:\原创 2013-11-27 14:39:37 · 10721 阅读 · 0 评论 -
QSharedPointer与QMap混合使用的注意事项
1.QSharedPointer内部的指针如果指向相同类型的相同对象,则操作符“==”返回true,可以看出QSharedPointer有对“==”操作符的重载。Qt助手上解释如下:bool operator==(const QSharedPointer & ptr1, const QSharedPointer & ptr2)Returns true if the pointer re原创 2013-11-28 18:00:45 · 7654 阅读 · 0 评论 -
信号槽机制注意要点
1.Qt中的信号槽被连接N次,则信号发射1次,槽函数被调用N次。解决方法如下:默认情况下每一个连接都会收到一个信号,所以如果你把同一个信号与槽连接了多次(N),那么当信号发送后,这个槽也会被调用N次。所以这里千万要注意,我以前就遇到这么一个Bug过,所以写连接的代码的时候要注意哦,特别是有的时候在可能会出现重复调用的函数里面对某些信号和槽做连接,这样的话这个函数被调用多次就会造成连接的重复。要原创 2013-11-28 19:53:03 · 1084 阅读 · 0 评论 -
Qt文件操作积累
1.在处理文件名称时有时需要将可能带有“.”或“..”的相对文件名称或路径处理为标准文件名称或路径,可使用如下方法:(1)QString QFileInfo::canonicalFilePath() constReturns the canonical path including the file name, i.e. an absolute path without symbolic原创 2013-11-28 23:39:14 · 2410 阅读 · 0 评论 -
QThread线程注意事项
class Thread:public QThread{ Q_OBJECTprotected: void run();}void Thread::run(){ ******* do something...... *******}Thread* t=new Thread();connect(t,SIGNAL(转载 2013-11-29 23:39:28 · 2993 阅读 · 0 评论 -
Qt5中的字符串乱码问题
先例举几种Qt5中QString使用汉字的可能方法与结果:(以下结果适用用MSVC编译,工程使用Unicode字符集或多字节字符集的情况) //可以看出,与工程使用何种字符集无关测试代码源文件ASCII编码保存 源文件UTF-8无BOM保存源文件UTF-8且有BOM保存(需要使用VS2010SP1且加入#pragram executio原创 2013-11-29 20:54:39 · 5808 阅读 · 0 评论 -
QTableView与QTableWidget高阶使用积累
1.合并单元格实现void QTableView::setSpan(int row, int column, int rowSpanCount, int columnSpanCount)Sets the span of the table element at (row, column) to the number of rows and columns specified by (row原创 2013-12-01 16:36:50 · 9817 阅读 · 3 评论 -
Qt界面编程积累
1.QTextEdit类成员函数中包含了用于文本查找的成员函数,可用于“查找”对话框的设计:bool QTextEdit::find(const QString & exp, QTextDocument::FindFlags options = 0)Finds the next occurrence of the string, exp, using the given options.原创 2013-11-28 23:34:56 · 1771 阅读 · 0 评论 -
QTableView与QAbstractTableModel的使用
QTableView的使用:(1)设置最后一列填满表格剩余空间:tableView->horizontalHeader()->setStretchLastSection(true);(2)设置默认的表格行高:tableView->verticalHeader()->setDefaultSectionSize(20);(3)设置按内容调整列宽:tableView->horiz原创 2013-09-22 14:07:39 · 4850 阅读 · 0 评论 -
QT中QTreeView与QAbstractItemModel使用中QTreeViwe的美化
//QTreeView中节点展开过程中自动调整表头的列宽,使被展开的节点不会被遮住ui->treeView_Comm_SCL->header()->setResizeMode(QHeaderView::ResizeToContents);//在QAbstractItemModel的派生类中进行QTreeView显示的美化://在data中可以设置树节点使用的图标QVariant原创 2013-09-04 20:52:38 · 6048 阅读 · 0 评论 -
QT程序初始化时QDockWidget大小的调整方法
在QT中对于QDockWidget的resize()方法是无效的,因为QDockWidget的大小是由其中包含的控件决定的。在manual中这样说:A QDockWidget acts as a wrapper for its child widget, set with setWidget(). Custom size hints, minimum and maximum sizes and原创 2013-09-04 18:36:39 · 17993 阅读 · 9 评论 -
QT signals and slots
从百度空间看到的文章,我关注的地方是:1、signals前面不可加public、private和protected进行修饰;slots前面可以加,因为Qt说槽函数可以当普通函数使用。2、signals区域的函数必须是void类型,而且这些信号函数没有函数体,也就是说不可以自己定义这些信号函数,你只要声明它就够了,其它不用管,Qt内部自己弄。3、宏定义和函数指针不能用于信号和槽的参数,信转载 2013-08-05 19:15:53 · 959 阅读 · 0 评论 -
QT中元对象系统(MOC)原理
元对象系统这样工作:● Q_OBJECT宏声明一些内省函数(metaObject(),TR(),qt_matacall()和少量其他的函数)。这些函数必须在所有的QObject的子类中被实现。● Qt的moc工具负责执行被Q_OBJECT宏声明的函数,同时负责执行所有的信号函数。● QObject的成员函数,例如connect()和disconnect()原创 2013-08-06 09:59:12 · 4240 阅读 · 0 评论 -
QT中内存回收的特殊
Qt的父子机制是在QObject中实现的。当我们从父对象中产生一个子对象时(可以是一个widget,一个validator或者任何形式),父对象就把这个对象加入到它的子对象链表中。当父对象被删除时,它会遍历这个链表并销毁每一个子对象。这些子对象然后再继续销毁属于它们的子对象。如此的循环,直到没有对象剩下为止。 这种机制极大地简化了程序的内存管理任务,减少了内存泄露的危险。当我们删除父窗口原创 2013-08-06 11:47:48 · 983 阅读 · 0 评论 -
VS2008与QT联合编程环境搭建
(一)工欲善其事,必先利其器,废话不多讲。 总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚: 1,首先明确需要下载什么版本的QT。网上流行的安装说明只是针对过去旧版本的QT,还有要求下载VS2008 SP1补丁的等等。很乱,对于刚接触Qt开发者会造成不必要的困扰,安装个开发环境真的需要那么繁琐和劳神吗。 2,对于环境变量的配置,诸如p转载 2013-08-06 15:23:06 · 1533 阅读 · 0 评论 -
QT工程pro设置实践(with QtCreator)----非弄的像VS一样才顺手?
相信大家很多和我一样,用多了微软给的便利,用人家的就十分不习惯.于是就琢磨原来用到的功能现在要整顺手来,不然可让人怎么活啊! 本篇主要介绍实践使用,并非一篇完整教程,有待读者补充.^_^ 我们原本在VS上有一个大工程sln,里面有lib,有dll有exe,甚至还混搭了C#.用起来一点不觉得水土不服.现在要用QT重整,并且需要处处考虑换个平台不要让我改东西.作为探路先锋,先挑了几个基础转载 2013-08-06 22:54:12 · 1049 阅读 · 0 评论 -
QT中ui文件的使用方法
ui文件的使用是在Qt4中不太容易上手的一点,因为很多同学都是从Qt3升级到Qt4的,在升级过程中发现这部分的变化非常之大,让人有点无所适从。 Qt3的designer简直可以媲美一个ide,可以编辑代码,可以管理工程, 可是到了Qt4却仿佛是退化到了史前一万年,我们又来到那个茹毛饮血的蛮荒时代,工程管理的功能被彻底剔除到designer以外。Trolltech这样做也是有道理的,转载 2013-08-10 19:38:12 · 5141 阅读 · 0 评论 -
QTCreator中EXE程序图标设置
QT下执行程序的图标设置还没有一种跨平台的解决方案,这里介绍的时windows平台下的方法。首先当然要准备一个.ico图标文件(假定为qtdemo.ico),将其复制到工程目录当中(.pro文件所在的目录)。然后在QT Creator中Ctrl+N或 File - New File or Project,选择General中的Text File,名称填写为.rc文件(如qtdemo.r转载 2013-08-10 18:39:01 · 3053 阅读 · 0 评论 -
QTCreator的UI设计机制
相信用过Qt Designer的朋友,对Qt Project中的.ui文件并不陌生。这个文件在Qt Designer中并不能直接修改其源代码,而只能通过Qt Designer的图形工具对其进行操作。对于这一点,我不得不要赞一下设计Qt Designer的人,因为这大大可以避免.ui文件中出现语法错误的概率,同时使得程序员能省下大量的程序界面设计时间进而缩短整个程序项目的开发。 从另一转载 2013-08-10 19:20:54 · 3536 阅读 · 0 评论 -
在C++中子类继承和调用父类的构造函数方法
构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。 如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。构造原则如下: 1. 如转载 2013-08-12 00:07:44 · 1117 阅读 · 0 评论 -
关于QT加载lib与dll的一点评论
On Windows, you always link against a .lib file, even if the library itself is in a DLL. What you normally have to do to use an external library, on any platform, is:1) Add the library to the LIBS转载 2013-08-16 17:12:59 · 906 阅读 · 0 评论 -
QT中Model/View结构
Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的数据源可以被这些item view使用。这里对model/view的结构进行了描述,结构中的每个组件都进行了解释,给出了一些例子说明了提供的这些类如何使用。Model转载 2013-08-27 23:19:55 · 1649 阅读 · 0 评论 -
QTWarning
QT LNK4099:未找到PDB……第一:需要了解的知识,微软有一种文件PDB(Program Debug Database)程序调试数据,它的作用是记录所编译的程序的调试信息的,例如哪个符号在哪一行出现等内容。简言之,微软的Debug版本程序中在默认情况下都要对“它所编译出的内容”生成这个PDB文件。第二:如果程序需要引入外部的[b]静态库[/b],那么在Debug版本中,转载 2013-08-16 22:51:31 · 2621 阅读 · 0 评论 -
QT菜鸟问题
1. 在公司XP3上跟家里WIN7上同样VS2008+QT4.8.5+VSAddin1.1.1搭建的环境,这是前提,结果在公司创建的工程用移动硬盘带回来在家里竟然打不开,各种提示没权限,最后发现在WIN7下要用管理员权限打开才行,各种坑爹(QTCreator同样)。原创 2013-08-08 23:48:25 · 1602 阅读 · 0 评论