Qt
KanoRan
这个作者很懒,什么都没留下…
展开
-
Qt学习之路(1):前言
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/193918 Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你获得的是一个“一站式”的服务:不再需要研究STL,不再需要C++的,因为Qt有它自己的QString等等。或许这样说很偏激,但Qt确实是一个“转载 2012-07-14 21:32:15 · 554 阅读 · 0 评论 -
Qt学习之路(19): 事件(event)
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/223974前面说了几个标准对话框,下面不打算继续说明一些组件的使用,因为这些使用很难讲完,很多东西都是与实际应用相关的。实际应用的复杂性决定了我们根本不可能把所有组件的所有使用方法都说明白。这次来说说Qt相对高级一点的特性:事件。 事件(event)是有系统或者Qt本身在不转载 2012-07-17 16:39:15 · 1577 阅读 · 0 评论 -
Qt学习之路(20): 事件接收与忽略
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/225519本章内容也是关于Qt事件。或许这一章不能有一个完整的例子,因为对于事件总是感觉很抽象,还是从底层上理解一下比较好的吧!前面说到了事件的作用,下面来看看我们如何来接收事件。回忆一下前面的代码,我们在子类中重写了事件函数,以便让这些子类按照我们的需要完成某些功能,转载 2012-07-17 16:40:15 · 540 阅读 · 0 评论 -
Qt学习之路(23): 自定义事件
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/232314这部分将作为Qt事件部分的结束。我们在前面已经从大概上了解了Qt的事件机制。下面要说的是如何自定义事件。Qt允许你创建自己的事件类型,这在多线程的程序中尤其有用,当然,也可以用在单线程的程序中,作为一种对象间通讯的机制。那么,为什么我需要使用事件,而不是使用信转载 2012-07-17 16:43:10 · 1338 阅读 · 0 评论 -
Qt学习之路(21): event()
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/230883今天要说的是event()函数。记得之前曾经提到过这个函数,说在事件对象创建完毕后,Qt将这个事件对象传递给QObject的event()函数。event()函数并不直接处理事件,而是将这些事件对象按照它们不同的类型,分发给不同的事件处理器(event handler转载 2012-07-17 16:41:19 · 515 阅读 · 0 评论 -
Qt学习之路(22): 事件过滤器
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/231861Qt创建了QEvent事件对象之后,会调用QObject的event()函数做事件的分发。有时候,你可能需要在调用event()函数之前做一些另外的操作,比如,对话框上某些组件可能并不需要响应回车按下的事件,此时,你就需要重新定义组件的event()函数。如果组件很多转载 2012-07-17 16:42:04 · 480 阅读 · 0 评论 -
Qt学习之路(34): 国际化(下)
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/245063上次说了国际化的过程,现在来看一下具体的国际化的相关代码。 在代码中,我们使用tr()将需要翻译的字符串标记出来。lupdate工具就是提取出tr()函数中的相关字符串。tr()函数是QObject类的一个static函数,其签名如下: sta转载 2012-07-17 21:32:31 · 432 阅读 · 0 评论 -
Qt学习之路(33): 国际化(上)
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/2446892D绘图部分基本告一段落,还在想下面的部分要写什么,本来计划先说下view-model的相关问题,但是前面看到有朋友问关于国际化的问题,所以现在先来说说Qt的国际化吧! Qt中的国际化的方法有很多,常用的有使用QTextCodec类和使用tr()函数。前者将编转载 2012-07-17 21:31:35 · 516 阅读 · 0 评论 -
Qt学习之路(35): Qt容器类之顺序存储容器
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/245988本来计划先来说下model/view的,结果发现model/view涉及到一些关于容器的内容,于是就把容器部分提前了。 容器Containers,有时候也被称为集合collections,指的是能够在内存中存储其他特定类型的对象的对象,这种对象一般是通用的模板转载 2012-07-19 22:17:32 · 555 阅读 · 0 评论 -
Qt学习之路(36): Qt容器类之遍历器和隐式数据共享
本文出自 “豆子空间” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/247353前面说过,Qt容器类提供了两种遍历器:Java风格的和STL风格的。前者比较容易使用,后者则可以用在一些通过算法中,功能比较强大。 对于每一个容器类,都有与之相对应的遍历器:只读遍历器和读写遍历器。只读遍历器有QVectorIterator,QLink转载 2012-07-19 23:01:06 · 688 阅读 · 0 评论 -
Qt学习之路(37): Qt容器类之关联存储容器
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/248373今天我们来说说Qt容器类中的关联存储容器。所谓关联存储容器,就是容器中存储的一般是二元组,而不是单个的对象。二元组一般表述为,也就是“键-值对”。 首先,我们看看数组的概念。数组可以看成是一种形式的键-值对,它的Key只能是int,而值的类型是Object,也转载 2012-07-20 16:32:54 · 572 阅读 · 0 评论 -
Qt学习之路(38): model-view架构
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/250566从这一节开始,我们进入model-view阶段。这一阶段主要还是依据 C++ GUI Programming with Qt4, 2nd Edition。 我们的系统有很多数据显示的需求,比如从数据库中把数据取出,然后以自己的方式显示在我们自己的应用程序的界面转载 2012-07-26 15:39:40 · 500 阅读 · 0 评论 -
Qt学习之路(41): QTableWidget
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/264422今天的QTableWidget是最后一个items class类型了。不过这并不是model-view的终结,因为我们现在还只是接触到了最简单的model-view的封装类,更复杂和强大的model-view类型的应用还没有见识到呢! QTableWidget转载 2012-07-26 16:54:07 · 548 阅读 · 0 评论 -
Qt学习之路(39): QListWidget
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/251391前面一节简单概述著名的MVC模式在Qt中的实现,现在我们从QListWidget开始了解Qt提供的一系列方便的item view类。 第一个要说的是QListWidget。这个类为我们展示一个List列表的视图。下面还是先看代码: listwidget转载 2012-07-26 16:03:53 · 578 阅读 · 0 评论 -
Qt学习之路(40): QTreeWidget
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/262296接着前面的内容,今天要说的是另外一个item view class,QTreeWidget。顾名思义,这个类用来展示树型结构。同前面说的QListWidget类似,这个类需要同另外一个辅助类QTreeWidgetItem一同使用。不过,既然是提供方面的封装类,即便是看转载 2012-07-26 16:38:02 · 608 阅读 · 0 评论 -
Qt学习之路(44): QSortFilterProxyModel
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/266500Qt为我们预定义了很多model,前面已经说过了QStringListModel、QDirModel(也算是Qt推荐使用的QFileSystemModel吧,这个在上一章最后重新加上了一段话,没有注意的朋友去看看哦)。今天我们要说的这个QSortFilterProxy转载 2012-07-27 17:03:03 · 623 阅读 · 0 评论 -
Qt学习之路(42): QStringListModel
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/265057今天开始我们要看看Qt的model-view类了。正如前面说的那样,之前三节的item class类只是Qt为了方便我们使用而封装了的一些操作。比起真正的model-view类来,那些类更易于使用,但是功能也会更简单,并且缺少实时性的支持,比如我们并不方便实现插入、删转载 2012-07-27 16:08:59 · 10033 阅读 · 0 评论 -
Qt学习之路(13): 菜单和工具条(续)
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/205958前面一节我们已经把QAction添加到菜单和工具条上面。现在我们要添加一些图片美化一下,然后把信号槽加上,这样,我们的action就可以相应啦! 首先来添加图标。QAction的图标会显示在菜单项的前面以及工具条按钮上面显示。 为了添加图标,我们首先要转载 2012-07-15 12:02:03 · 508 阅读 · 0 评论 -
Qt学习之路(8): 创建一个对话框(下)
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/198988接着前一篇,下面是源代码部分: #include #include"finddialog.h" FindDialog::FindDialog(QWidget *parent) : QDialog(parent)转载 2012-07-15 09:20:43 · 422 阅读 · 0 评论 -
Qt学习之路(4):初探信号槽
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/194442看过了简单的Hello, world! 之后,下面来看看Qt最引以为豪的信号槽机制! 所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座。怎么说呢?当某种事件发生之后,比如,点击了一下鼠标,或者按了某个按键,这时,这个组件就会发出一个信号。就像是广播一样转载 2012-07-14 21:40:12 · 413 阅读 · 0 评论 -
Qt学习之路(7): 创建一个对话框(上)
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/198971首先说明一点,在C++ GUI Programming with Qt4, 2nd中,这一章连同以后的若干章一起,完成了一个比较完整的程序——一个模仿Excel的电子表格。不过这个程序挺大的,而且书中也没有给出完整的源代码,只是分段分段的——我不喜欢这个样子,我想要看转载 2012-07-15 09:19:41 · 432 阅读 · 0 评论 -
Qt学习之路(9):深入了解信号槽
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/199461信号槽机制是Qt编程的基础。通过信号槽,能够使Qt各组件在不知道对方的情形下能够相互通讯。这就将类之间的关系做了最大程度的解耦。 槽函数和普通的C++成员函数没有很大的区别。它们也可以使virtual的;可以被重写;可以使public、protected或者p转载 2012-07-15 11:58:07 · 413 阅读 · 0 评论 -
Qt学习之路(11): MainWindow
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/203313尽管Qt提供了很方便的快速开发工具QtDesigner用来拖放界面元素,但是现在我并不打算去介绍这个工具,原因之一在于我们的学习大体上是依靠手工编写代码,过早的接触设计工具并不能让我们对Qt的概念突飞猛进…… 前面说过,本教程很大程度上依照的是《C++ GUI转载 2012-07-15 11:59:57 · 677 阅读 · 0 评论 -
Qt学习之路(16): Qt标准对话框之QColorDialog
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/214164继续来说Qt的标准对话框,这次说说QColorDialog。这是Qt提供的颜色选择对话框。 使用QColorDialog也很简单,Qt提供了getColor()函数,类似于QFileDialog的getOpenFileName(),可以直接获得选择的颜色。我们转载 2012-07-15 12:04:30 · 672 阅读 · 0 评论 -
Qt学习之路(17): Qt标准对话框之QMessageBox
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/217694好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新。而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework。好了,现在还是继续来说说Qt的标准对话框吧! 这次来说一下QMess转载 2012-07-15 12:06:12 · 474 阅读 · 0 评论 -
Qt学习之路(18): Qt标准对话框之QInputDialog
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/219338这是Qt标准对话框的最后一部分。正如同其名字显示的一样,QInputDialog用于接收用户的输入。QInputDialog提供了一些简单的static函数,用于快速的建立一个对话框,正像QColorDialog提供了getColor函数一样。 首先来看看ge转载 2012-07-15 12:07:19 · 1136 阅读 · 0 评论 -
Qt学习之路(2):Hello, world!
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/194031 任何编程技术的学习第一课基本上都会是Hello, world!,我也不想故意打破这个惯例——照理说,应该首先回顾一下Qt的历史,不过即使不说这些也并无大碍。 或许有人总想知道,Qt这个单词是什么意思。其实,这并不是一个缩写词,仅仅是因为它的发明者,T转载 2012-07-14 21:34:10 · 448 阅读 · 0 评论 -
Qt学习之路(3):Hello, world!(续)
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/194137下面来逐行解释一下前面的那个Hello, world!程序,尽管很简单,但却可以对Qt程序的结构有一个清楚的认识。现在再把代码贴过来:#include #include int main(int argc,char *argv[]){转载 2012-07-14 21:37:53 · 381 阅读 · 0 评论 -
Qt学习之路(5):组件布局
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/194616同Swing类似,Qt也提供了几种组件定位的技术。其中就包括绝对定位和布局定位。顾名思义,绝对定位就是使用最原始的定位方法,给出这个组件的坐标和长宽值。这样,Qt就知道该把组件放在哪里,以及怎么设置组件的大小了。但是这样做的一个问题是,如果用户改变了窗口大小,比如转载 2012-07-14 21:42:16 · 554 阅读 · 0 评论 -
Qt学习之路(6): API文档的使用
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/198078今天来说一下有关Qt API文档的使用。因为Qt有一个商业版本,因此它的文档十分健全,而且编写良好。对于开发者来说,查看文档时开发必修课之一——没有人能够记住那么多API的使用! 在Qt中查看文档是一件很简单的事情。如果你使用QtCreator,那么左侧的He转载 2012-07-15 09:18:45 · 564 阅读 · 0 评论 -
Qt学习之路(10): Meta-Object系统
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/199472前面说过,Qt使用的是自己的预编译器,它提供了对C++的一种扩展。利用Qt的信号槽机制,就可以把彼此独立的模块相互连接起来,不需要实现知道模块的任何细节。 为了达到这个目的,Qt提出了一个Meta-Object系统。它提供了两个关键的作用:信号槽和内省。转载 2012-07-15 11:59:00 · 422 阅读 · 0 评论 -
Qt学习之路(12): 菜单和工具条
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/205034在前面的QMainWindow的基础之上,我们开始着手建造我们的应用程序。虽然现在已经有一个框架,但是,确切地说我们还一行代码没有写呢!下面的工作就不那么简单了!在这一节里面,我们要为我们的框架添加菜单和工具条。 就像Swing里面的Action一样,Qt里面转载 2012-07-15 12:01:03 · 474 阅读 · 0 评论 -
Qt学习之路(14): 状态栏
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/210947有段时间没有写过博客了。假期去上海旅游,所以一直没有能够上网。现在又来到这里,开始新的篇章吧! 今天的内容主要还是继续完善前面的那个程序。我们要为我们的程序加上一个状态栏。 状态栏位于主窗口的最下方,提供一个显示工具提示等信息的地方。一般地,当窗口不是转载 2012-07-15 12:02:52 · 749 阅读 · 0 评论 -
Qt学习之路(15): Qt标准对话框之QFileDialog
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/213414《Qt学习之路》已经写到了第15篇,然而现在再写下去却有点困难,原因是当初并没有想到会连续的写下去,因此并没有很好的计划这些内容究竟该怎样去写。虽然前面说过,本教程主要线路参考《C++ Gui Programming with Qt 4, 2nd Edition》,然转载 2012-07-15 12:03:37 · 731 阅读 · 0 评论 -
Qt学习之路(tip): parent参数
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/214166这是一篇很简单的文章,仅仅是用来说明一下一个参数的作用,因此我把它写成了tip,而不是接下来的17. 程序写的多了,你会发现几乎所有的Qt类的构造函数都会有一个parent参数。这个参数通常是QObject* 或者是 QWidget* 类型的。很多情况下它都会转载 2012-07-15 12:05:18 · 477 阅读 · 0 评论 -
Qt学习之路(43): QDirModel
本文出自 “豆子空间” 博客,原文出处http://devbean.blog.51cto.com/448512/265658今天我们来看一个很有用的model:QDirModel。这个model允许我们在view中显示操作系统的目录结构。这次让我们先来看看运行结果: 这个界面很熟悉吧?不过这可不是由QFileDialog打开的哦,这是我们自己实现的。而提供这种实现支持的,转载 2012-07-27 16:45:27 · 773 阅读 · 0 评论