QT
文章平均质量分 80
花莫弦
达则兼济天下,穷则独善其身
展开
-
Qt程序在windows 和 linux 下打包发布
一、Linux下qt程序动态打包步骤: 1.从可运行程序的文件中拿出可执行文件; 2.终端下 使用ldd命令查看需要的连接库; 3.把ldd查询到的所有需要的库导出; 4.编写.sh文档,书写环境变量,或者在/etc/profile文件中书写环境变量:export $LD_LIBRARY_PATH=$LD_LIBRARY_PATH + 链接库目录,在运行so原创 2015-07-09 14:49:43 · 2955 阅读 · 0 评论 -
设计Qt风格的C++API
在奇趣(Trolltech),为了改进Qt的开发体验,我们做了大量的研究。这篇文章里,我打算分享一些我们的发现,以及一些我们在设计Qt4时用到的原则,并且展示如何把这些原则应用到你的代码里。优秀API的六个特性便利陷阱布尔参数陷阱静态多态命名的艺术指针还是引用?案例分析:QProgressBar如何把API设计好设计应用程序接翻译 2016-03-30 17:31:48 · 1895 阅读 · 1 评论 -
Qt4 和 Qt5 模块的分类
Qt5 与 Qt4 其中的一个区别是底层架构进行了改变,Qt5 引入了更加详细的模块化的概念,将众多功能细分到几个模块之中,Qt4 则是一种粗略的划分。本文主要对 Qt5 和 Qt4的模块进行一个简单的介绍。(注:本文引用Qt4.8和Qt5.6两个版本)一、Qt4.8 (http://doc.qt.io/qt-4.8/modules.html)1.基础模块:1)QtCore,提供核翻译 2016-05-17 17:48:46 · 4644 阅读 · 0 评论 -
Qt项目管理
一、qmake的介绍 qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。 手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile。使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只原创 2016-05-18 10:53:05 · 840 阅读 · 0 评论 -
Qt事件系统
The Event System一、事件 不同于广义上的事件,在程序中事件通常指由于某些动作而产生的响应的消息。 Qt常见的事件类型包括鼠标事件、键盘事件、拖放事件、滚轮事件、绘屏事件、定时事件、焦点事件、移动事件、尺寸该表事件、窗口隐藏显示事件等。 本质上Qt就是利用QApplication进行事件的分发,而利用QObject进行事件的接收和处理的。原创 2016-06-14 23:16:50 · 1924 阅读 · 0 评论 -
Qt属性系统
(本篇文章为Qt官网英文文章,此为翻译整理所作)The Property System Qt提供了一套和其他通用编译器提供商所提供的属性系统类似的属性系统 ,然而,作为一个独立于编译器和平台的库,Qt不能依赖像__property或者[property]那样的非标准编译器特征。Qt的解决方案是在支持任意标准平台上的C++编译器的基础上进行工作。它基于元对象系统,元对象系统也通翻译 2016-06-16 22:12:44 · 1198 阅读 · 0 评论 -
VS调试查看Qt内置类型
利用VS调试Qt程序,通常情况下无法查看QString等Qt内置类型的值,只能够利用QDebug进行输出显示,但是这样引起的问题就是每次调试的时候都需要重新编译,当然这是不包括自己编写库的情况,下面来介绍另外一种方式可以让利用VS在调试Qt程序的时候直接像查看C++内置类型(例如int)一样进行查看值。 1.打开VS的安装目录,找到Common7\Packages\Debugger下面的原创 2016-07-19 09:21:43 · 3905 阅读 · 3 评论 -
VS编译Qt源码
Qt常用的编译方式有两种,一种是使用mingw编译器,另外一种是使用vs编译器进行编译,本文主要介绍使用vs编译器进行编译。1、编译选项 以下编译选项为常用编译选项,可添加在编译命令中,都是可选: 1)-prefix :指定安装目录默认在; 2)-hostprefix [dir] :指定可扩展的工具库安装路径,默认当前目录; 3) -prefi原创 2016-08-16 22:57:31 · 7719 阅读 · 4 评论 -
数据库开发基础
一、编程简介QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。QSqlDatabase代表数据库的关联。Qt使用驱动程序同各种数据库的接口进行通信。Qt4.8.6主要包括以下一些驱动程序:QDB2 QIBASE QMYSQL QOCI QODBC QPSQLQSQLITE QSQLITE2 QTD原创 2016-08-06 23:18:15 · 1694 阅读 · 0 评论 -
使用windeployqt.exe进行依赖查找打包
Qt 官方开发环境使用的动态链接库方式,在发布生成的可执行程序时,需要复制可执行程序的依赖库,如果自己去复制依赖库,可能会遗漏,导致可执行程序在别的电脑里无法正常运行,因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe,用以进行依赖库的查找,已经可执行程序的打包。执行方式是在Qt for Desktop 中执行windeployqt.exe命令进行打包。集成开发环境原创 2016-08-09 22:56:53 · 4001 阅读 · 1 评论 -
Qt样式表QSS基本使用
Qt具有一种名为样式表的文件qss,主要结构与css相似,用于将界面与样式风格相互分离,形成同web相同的可以随意换肤的效果。一、QSS语法 和css 一样,他也有由一个选择器和具体的样式描述组成,选择器指定了是对象,样式描述指定了具体的样式风格。如: QPushButton { color: red }指QPushButton对象的前景色为红色。 选择器主要包括原创 2016-08-11 23:21:53 · 2765 阅读 · 0 评论 -
VS+Qt开发环境搭建
Qt 除了使用QCreator进行开发,还可以使用例如VS和eclipse等IDE进行集成开发,下面就介绍一下使用VS + Qt的开发方式。 注:Qt4 只能和VS2010以下进行集成,Qt5至少vs2010以上是没有问题的,以下并没有测试过,如果想要用例如VS2013和Qt4进行集成开发,只能够重新编译Qt4,并且单独使用designer进行UI界面的开法。 1、安装准备原创 2016-08-14 22:56:22 · 1034 阅读 · 0 评论 -
linux下Qt访问sqlserver数据库
下载地址:http://pan.baidu.com/s/1i44vxbf1.安装unixODBC1.tar-xzvfunixODBC-2.3.2.tar.gz2.cdunixODBC-2.3.23../configure--prefix=/usr/local/unixODBC4.make && make install2.安装...原创 2017-11-21 17:31:18 · 4521 阅读 · 14 评论 -
学习Qt5(12)
1.Qt中文乱码 1)在主文件中使用本地编码,进行语言国际化的处理, QTextCodec::setCodecForLocale(QTextCodec::codecForLocale()); QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); QTextCodec::setCodecFo原创 2015-11-30 15:01:29 · 973 阅读 · 1 评论 -
学习Qt5(11)
1.Qt多线程 1)主要使用QThread类进行线程的操作,基本函数有start,stop,wait,terminate,sleep等; 2)利用锁来控制多线程访问临界资源,QMutex,QMutexLocker,QSemaphore,QWaitCondition, 3)QMutexLocker在构造函数中接收QMutex对象为参数进行锁定,在析构中会自动解锁这个互斥原创 2015-10-30 16:49:24 · 573 阅读 · 0 评论 -
Qt5之于Qt4的发展
一、什么是Qt5 Qt5是Qt的最新版本,对Qt4做出了重大的革新以满足未来应用程序开发框架的技术需求和发展方向。 1.全面的模块化架构,结构清晰; 2.全新的基于OpenGl的图像引擎,全面提升QtQuick的界面性能; 3.全面支持C++11标准; 4.全新的支持操作系统的统一框架,对新的操作系统具有更好的兼容性。 二、Qt5模块翻译 2015-07-13 09:16:59 · 5081 阅读 · 0 评论 -
Centos6.6 安装 Qt4.8.6 + QtCreator2.6.1
1.安装包 http://download.qt.io/official_releases/qt/4.8/4.8.6/ http://download.qt.io/official_releases/qtcreator/2.6/2.6.1/ 因为我的操作系统是64位的,所以安装的64位版本。2.安装 QtCreator2.6.1原创 2015-07-29 23:05:22 · 1621 阅读 · 0 评论 -
学习Qt5(1)
1.什么是Qt 1)Qt是一个跨平台的C++图形用户界面应用程序框架; 2)Qt的通信机制是通过信号槽机制来完成的; 3)信号槽机制的优点主要包括类型安全(参数类型和个数相同,槽可以缺少后面的参数)、松散耦合(信号和槽函数只关注其内部,不关注其他方面); 4)Qt的元对象系统提供了对象间的通信机制、运行时类型信息和动态属性系统原创 2015-08-28 23:45:25 · 527 阅读 · 0 评论 -
学习Qt5(4)
1.QToolBox抽屉效果 1)QToolBox构造一种列状的层叠抽屉效果的窗体; 2)QToolButton构造一种快速访问或选择项的通常用于工具条使用的按钮; 3)示例代码:(其中主窗体继承QToolBox) QToolButton *toolBtn1 =new QToolButton; toolBtn1->setText(原创 2015-09-07 23:35:06 · 593 阅读 · 0 评论 -
学习Qt5(5)
1.Qt主窗体 1)Qt主要使用QMainWindow来作为主窗口,其中包含菜单栏、工具栏、状态栏、中心部件等; 2)命令动作通常使用QAction来创建; 3)可以在状态栏上面添加Qt的窗口控件,例如进度条等; 4)QDockWidget锚接部件通常用于主窗口上面,以实现停靠或浮动的效果; 5)创建动作:原创 2015-09-08 22:33:35 · 762 阅读 · 0 评论 -
十六进制颜色值参考
#FFFFF0 #FFFFE0 #FFFF00 #FFFFFF #FFFAFA #FFFAF0 #FFFACD #FFF8DC #FFF68F原创 2015-09-06 21:19:53 · 1432 阅读 · 0 评论 -
学习Qt5(3)
1.QFileDialog 标准文件对话框 1)getOpenFileName 获得用户选择的文件名称; 2)getSaveFileName 获得用户保存的文件名称; 3)getExistingDirectory 获得用户选择的已经存在的目录名称; 4)getOpenFileNames 获得用户选择的文件名称列表; 5)代码示例: QSt原创 2015-09-06 20:37:27 · 531 阅读 · 0 评论 -
学习Qt5(6)
1.位置信息函数 1)x()、y()、和pos()表示整个窗体左上角的坐标位置; 2)frameGeometry()表示整个窗体左上顶点的坐标、高和宽; 3)geometry()表示整个窗体中心区域的左上顶点的坐标、高和宽; 4)width()表示中央区域的宽; 5)height()表示中央区域的高;原创 2015-09-14 16:43:32 · 545 阅读 · 0 评论 -
学习Qt5(7)
1.图形视图框架 1)特点:支持OpenGL、反锯齿等,支持时间传播体系结构,支持二元空间划分法进行图元的快速查找; 2)二元空间划分法参考链接: http://www.jsj.tzc.edu.cn/teacher/crq/list.asp?id=65 3)三要素:QGraphicsScene、QGraphicsView、QGr原创 2015-09-16 08:51:00 · 681 阅读 · 0 评论 -
学习Qt5(8)
1.模型视图框架 1)MVC设计模式是起源于Smalltalk的一种和用户界面有关的设计模式; 2)优点:可以有效的分离数据和用户界面; 3)三要素:模型、视图和用户界面上的操作控制; 4)Qt优化了MVC,采用视图和控制相结合的方式进行处理; 5)基础模型类:QProxyModel、QAbstractListModel、QAbstractTabl原创 2015-10-23 17:29:34 · 802 阅读 · 0 评论 -
学习Qt5(9)
1.Qt 快捷键快捷键描述F1查看帮助F2跳转到定义函数F4头文件和源文件之间切换F5开始调试F9设置和取消断点F10单步前进F11单步进入原创 2015-10-26 16:10:00 · 1011 阅读 · 0 评论 -
学习Qt(10)
1.网络通信 1)获取本机网络信息:主要使用QHostInfo、QNetWorkInternet和QNetWorkAddressEntry类; 2)注意引用QNetWork需要在pro文件中添加QT += network; 3)Udp协议:QUdpSocket实现udp的应用。Udp服务器和客户端不建立连接,只是调用接收和发送函数进行数据传输;原创 2015-10-28 14:41:52 · 612 阅读 · 0 评论 -
Qt实现艺术字效果
Qt实现艺术字效果,通常有三种方式,一种是通过绘制机制,另外一种是使用样式表,最后一种是通过图片代替,本次介绍使用绘制来实现艺术字效果。 代码如下(分两种实现): 第一种: QPainter painter(this); QPen pen; pen.setWidth(2); pen.setColor(Qt::red)...原创 2018-06-03 20:23:41 · 6172 阅读 · 0 评论