现在位置: 首页 > Qt
2015-06-23 16:19 工业·编程 ⁄ 共 1520字 暂无评论
简单地讲,Qt其实就是一个C++的类库。配置编译环境,其实就是配置一个C++编译环境,同时将Qt库载入进来。当然Qt还额外提供了自己内部的一些功能,例如界面编辑器(designer)等。网上有很多配置开发环境的文章,多是手把手一步一步讲,非常详细。但是我初学的时候仍会出一些问题,不知道怎么解决。这里对整个编译环境做一个介绍,希望对大家有帮助,在出问题的时候知道从何下手。 编译器与Qt库 Qt是跨平台的库,不论你在哪个平...
阅读全文
Qt下使用类QUndoStack、QCommands、QUndoGroup等类实现保存用户操作。 保存用户的原理比较容易理解。之前我们所写的用户操作,如鼠标点击后的响应,都是直接写在mouseEvent下的,不能实现保存。现在使用QCommands类将用户操作进行封装,将需要的参数保存起来,在将这些commands放到undoStack中,由undoStack管理这些用户操作的加入、清除、执行下一个等功能。 下面讲讲具体实现步骤: 以用户操作一个dialog消失,与出现的功能为...
阅读全文
2015-06-21 21:10 工业·编程 ⁄ 共 2710字 暂无评论
1. Introduction 现代稍微大型一点的软件,要处理的数据量通常会比较大。这时就需要有一个唯一的数据源,且会对这个数据源中的数据进行增、删、改的操作。如果没有统一的数据源,数据会随意地被创建和删除,且创建和删除的用户界面也不统一,不利于软件管理。基于唯一的数据源,并在这个基础上提供统一的增删改接口,不仅有利于软件数据管理,还有利于事务的处理,即Undo/Redo功能。若引入脚本语言,如Tcl或Python,甚至可实现...
阅读全文
文章目录 Qt国际化的一般步骤 Qt国际化的一般步骤 运行 lupdate,从应用程序的代码中提取所有界面上的可见字符。 这些可见字符必须被 tr() 、QCoreApplication::translate()、Qt_TR_NOOP()、Qt_TRANSLATE_NOOP()等来包裹字符串,具体这些函数或者宏是什么功能,我们后面细说。 使用 Qt Linguist 翻译应用程序。 运行 lrelease,生成二进制的 .qm 文件,应用程序可以使...
阅读全文
通过QStandardItem和QStandardItemModel可以很简单方便的给QTreeView添加节点,但是,许多树形控件都需要树的节点需要一个复选框(checkBox),网上许多资料都是通过自定义model来实现的,而且不能很好的实现checkbox的父子关联(父节点选中子节点全部选中,父节点不选,子节点全部选),下面将介绍如何使用QStandardItem和QStandardItemModel实现复选框,且实现父子关联 1.使用QStandardItem使树形控件条目带上复选框 复选框在树...
阅读全文
动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形式灵活地组建起来。比起源码级别的模块化,二进制级别的模块划分使得各模块更加独立,各模块可以分别编译和链接,模块的升级不会引起其它模块和主程序的重新编译,这点对于大系统的构建来说更加实用。另一方面,对于商业目的明显的企业,各模块可以独立设置访问权限,开发成员只能访问自己负责的模块,其它模块是不能也不给看到的,这样减少...
阅读全文
2015-06-05 16:21 工业·编程 ⁄ 共 334字 暂无评论
bool mouseTracking 这个属性保存的是窗口部件跟踪鼠标是否生效。 如果鼠标跟踪失效(默认),当鼠标被移动的时候只有在至少一个鼠标按键被按下时,这个窗口部件才会接收鼠标移动事件。 如果鼠标跟踪生效,如果没有按键被按下,这个窗口部件也会接收鼠标移动事件。 也可以参考mouseMoveEvent ()和QApplication::setGlobalMouseTracking ()。 通过setMouseTracking ()设置属性值并且通过hasMouseTracking ()来获得属性值。 调用...
阅读全文
2015-06-04 16:15 工业·编程 ⁄ 共 6255字 暂无评论
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。...
阅读全文
在Qt4中,国内很多新手都喜欢——不分青红皂白地使用如下3行代码 QTextCodec::setCodecForTr(...) QTextCodec::setCodecForCStrings(...) QTextCodec::setCodecForLocale(...) 让人少多有些无奈。。。 相关阅读     ----Qt国际化(源码含中文时)的点滴分析 症结? 在国内,之所以用很多人用这3行代码,是因为他们在源代码的const char*这种窄字符串中使用了中文。 然后,发现。不对啊,咋全是乱码呢?于是上...
阅读全文
注意:本文不介绍如何使用Qt的国际化、本地化支持。本文针对的是偏底层的、Manual和其他资料中很少涉及的东西。所以,继续之前,请先确保:你已经对如何使用Qt的国际化比较熟悉了。 本文针对的是  tr("我是中文") 这种情况。 例子 首先,个人比较抵制源码中使用中文(当然也包括用tr扩住中文了)。但是如果非要用,也不是不可以。之前也提到了这个问题。 废话少说,看个例子: #include <QApplica...
阅读全文