
开发-QT
zgjxhgh
这个作者很懒,什么都没留下…
展开
-
Qt中translate、tr关系 与中文问题
题外话:何时使用 tr ?在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人:(1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr (2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种:(2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包) (2b) 用tr包住中文(源码用中文,转载 2012-04-26 09:25:14 · 356 阅读 · 0 评论 -
vs2005+qt4 问题记录
一、QT中文乱码问题 问题描述:QT界面程序中的中文都会显示乱码。 解决方案:在QMainWindow子类构造函数里调用::QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312")); 在要用到中文的地方使用tr()转换一下;二、ifstream,ofstream打开中文路径出错转载 2012-03-29 16:06:43 · 542 阅读 · 0 评论 -
Qt 事件过滤器
Qt 事件过滤器是本文要介绍的内容,Qt 事件模型一个真正强大的特色是一个QObject的实例能够管理另一个QObject 实例的事件。让我们试着设想已经有了一个CustomerInfoDialog的小部件。CustomerInfoDialog 包含一系列QLineEdit. 现在,我们想用空格键来代替Tab,使焦点在这些QLineEdit间切换。一个解决的方法是子类化QLineEdit,转载 2012-03-29 16:02:55 · 360 阅读 · 0 评论 -
Qt键盘事件
注意:如果你需要的全局热键:请移步:Qt 全局热键 QxtGlobalShortcut 分析与使用举例Qt键盘事件属于Qt事件系统,所以事件系统中所有规则对按键事件都有效。下面关注点在按键特有的部分:focus一个拥有焦点(focus)的QWidget才可以接受键盘事件。有输入焦点的窗口是活动窗口或活动窗口子窗口或子子窗口等。焦点移动的方式有以下几种:按下Tab或Shi转载 2012-03-29 16:00:00 · 509 阅读 · 0 评论 -
QMenuBar焦点问题
QTBUG18896问题http://bugreports.qt.nokia.com/browse/QTBUG-18896Sometimes it occurs that keypresses act like the Alt-key has been pressed also, which means that the key event is only sent to th转载 2012-03-29 16:23:44 · 633 阅读 · 0 评论 -
启动画面(Splash Screens)
启动画面(Splash Screens) 许多应用程序在启动时显示一个画面。在程序启动很慢时,程序员用这种方法可以让启动时间感觉不那么长,还有用这个画面满足市场的一些要求。给Qt应用程序加一个启动画面很简单,需要使用的类是QSplashScreen。在窗口没有显示之前,QSplashScreen显示一个图片,他还可以在图片上显示文字信息提示用户当前程序初始化的进度。一般情况下,启动画面代码转载 2012-04-19 12:09:12 · 655 阅读 · 0 评论 -
Qt 文件处理
Qt提供了QFile类来进行文件处理,为了更方便地处理文本文件或二进制文件,Qt还提了QTextStream类和QDataStream类,处理临时文件可以使用QTemporaryFile,获取文件信息可以使用QFileInfo,处理目录可以使用QDir.监视文件和目录变化可以使用QFileSystemWatcher.读写文本文件QFile类提供了读写文件的接口,QFile类可以读写转载 2012-03-29 16:13:57 · 1701 阅读 · 0 评论 -
qt国际化
1.程序中要国际化的静态字符串用tr()及trUtf8()2.动态string用qstring的arg()方法,如tr("host %1 found").arg(hostname),所谓动态是指需要参数生成字符串3.在用tr转换变量之前,变量用QT_TR_NOOP,此方法用在静态字符串数组上 如: static const char *greeting_strings[] = {转载 2012-03-29 10:50:09 · 653 阅读 · 0 评论 -
编译 qt-everywhere-opensource-src-4.8.1
今天下了一个“qt-everywhere-opensource-src-4.8.1.zip”,但是在解压后里面有一些垃圾文件,需要先清理掉:1)清空bin目录数据2)删除config.profiles目录3)删除config.tests目录 同时有个文件“\src\3rdparty\webkit\Source\WebCore\platform\DefaultLocalizati原创 2012-05-23 15:44:39 · 1337 阅读 · 0 评论 -
“当前不会命中断点。源代码与原始版本不同”问题的解决办法
开发时有一个工程的一个文件的断点无效,VS 2005提示说当前不会命中断点。源代码与原始版本不同,请在断点选项里设置允许源代码与原始版本不同。这个是针对单个断点进行设置。 第一步:先清理解决方案第二步:在“工具”-->“选项”-->“调试”-->常规-->“要求源文件与原始版本完成匹配” 去掉勾原创 2015-04-23 10:38:41 · 902 阅读 · 0 评论 -
QT的Configure参数不完全说明
配置参数选项:前面是*号的表示默认参数. +号表示该功能要求被评估,评估成功后才能被接受.-release ........... 调试关闭.没有调试库,自己的项目只能发布,不能调试(没有调试库的缘故),如果你硬要编译debug版本的话,会提示找不到xxxxxd.dll* -debug ............. 只有调试库,没有释放库,也就是说以后自己的项目只能调试,如果你硬要编译d转载 2012-03-29 10:25:53 · 546 阅读 · 0 评论 -
Qt 全局热键 QxtGlobalShortcut 分析与使用举例
不少人有给程序添加全局热键的需求。网上随便一搜,就能找到不少介绍windows下如何实现的方式:首先: 使用 RegisterHotKey和 UnregisterHotKey 注册和反注册热键其次: 在事件全局过滤器 winEventFilter 中相应热键但是涉及其他平台的,中文资料中提到的似乎不多。libqxt其实Qt第三方的库 libqxt 中已经给出了一个比转载 2012-03-29 16:20:43 · 628 阅读 · 0 评论 -
QPushButton 之 default、autoDefault 分析
QPushButton,很常见很简单的一个东西。可以今天还是被它的一个default属性弄晕了。QDialog中添加一个QDialogButtonBox,然后其中始终有一个button始终处于default状态,死活去不掉... 到底怎么了... 从头理理了,于是便有了本文focus 与 defaultQPushButton 的这两个属性都影响其外观,如下图所示,在vista系统下:转载 2012-03-29 16:19:39 · 685 阅读 · 0 评论 -
vs2005+QT+Qt Visual Studio Add-in
1)安装VS20051-1)执行“C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat”2)下载“qt-win-opensource-src-4.5.1.zip”[http://qt.nokia.com/]2-1)解压到“D:\qt-win-opensource-src-4.5.1”2-2)环境变原创 2012-05-21 11:38:38 · 1845 阅读 · 0 评论 -
Qt内存管理
在Qt的程序中经常会看到只有new而不delete的情况,其实是因为Qt有一套回收内存的机制,主要的规则如下:1.所有继承自QObject类的类,如果在new的时候指定了父亲,那么它的清理时在父亲被delete的时候delete的,所以如果一个程序中,所有的QObject类都指定了父亲,那么他们是会一级级的在最上面的父亲清理时被清理,而不用自己清理;2.程序通常最上层会有一个根的QObje转载 2012-05-18 12:04:50 · 1062 阅读 · 0 评论 -
vs下qt工程设置exe图标
1.在项目文件夹里创建名为*.rc的文件,如myapp.rc。2.文件中写入IDI_ICON1 ICON DISCARDABLE "myapp.ico" 其中,myapp.ico为图标的文件名。3.将文件myapp.ico拷贝到项目文件夹内。4.在解决方案资源管理器中,右键点击项目,添加myapp.rc及myapp.ico。5.重新生成解决方案。转载 2012-03-29 16:04:30 · 518 阅读 · 0 评论 -
QTableWidget 用法总结
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并转载 2012-04-12 14:42:19 · 9128 阅读 · 0 评论 -
QListView 和 QStandardItemModel的使用
实际上用这两个类也就创建了一个list,先看下实现的是一个什么样的东西 代码如下:.cpp#include "MyWidget.h"#include #include #define MEMORY_FREE(a)if(a){delete a; a = NULL;}MyWidget::MyWidget(QWidge转载 2012-03-29 16:18:14 · 7773 阅读 · 0 评论 -
Qt国际化(源码含中文时)的点滴分析
注意:本文不介绍如何使用Qt的国际化、本地化支持。本文针对的是偏底层的、Manual和其他资料中很少涉及的东西。所以,继续之前,请先确保:你已经对如何使用Qt的国际化比较熟悉了。本文针对的是 tr("我是中文") 这种情况, 是Qt中translate、tr 与中文问题 一文提到的 2b 问题的深入。例子首先,个人比较抵制源码中使用中文(当然也包括用tr扩住中文了)。但是转载 2012-03-29 16:24:56 · 849 阅读 · 0 评论 -
Qt Model/View 学习笔记
Qt Model/View 学习笔记 介绍Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系。这种结构带来的功能上的分离给了开发人员更大的弹性来定制数据项的表示,它也提供一个标准的model接口,使得更多的数据源可以被这些item view使用。这里对model/view的结构进行了描述,结构中的每个转载 2012-03-29 10:07:04 · 724 阅读 · 0 评论 -
在Qt中使用sleep
关于sleep函数,我们先来看一下他的作用:sleep函数是使调用sleep函数的线程休眠,线程主动放弃时间片。当经过指定的时间间隔后,再启动线程,继续执行代码。sleep函数并不能起到定时的作用,主要作用是延时。在一些多线程中可能会看到sleep(0);其主要目的是让出时间片。sleep函数的精度非常低,当系统越繁忙的时候它精度也就越低,有时候我们休眠1秒,可能3秒后才能继续执行。它的精度取决于转载 2012-03-29 16:01:27 · 429 阅读 · 0 评论 -
发布后中文显示乱码
Qt中带了很多插件(Plugin),在Qt目录下的"qt\plugins"下有一个"codecs"的文件夹。下面的文件从文件名就可以区别出来是“简体中文,繁体中文,日文,韩文”的编码插件。将该文件夹拷贝到程序所在的目录,程序运行就正常了(当然,codecs文件下面的".a"文件都可以删除,".dll"文件也可以把带"d"的debug版本的删掉。注意的是一定要把codecs文件夹放在发布程序的同目录转载 2012-04-20 16:32:42 · 780 阅读 · 0 评论 -
VS2012+Qt5
1. 下载zip源码,官方下载地址 http://download.qt.io/official_releases/2.安装python3.解压缩qt-everywhere-opensource-src-5.1.1.zip文件,修改qtbase\mkspecs\win32-msvc2012\qmake.conf文件,将QMAKE_CFLAGS_RELEASE =原创 2016-02-15 16:35:27 · 434 阅读 · 0 评论