Welcome 微信登录

首页 / 软件开发 / C++

Qt学习之路(11):MainWindow

Qt学习之路(11):MainWindow

Qt学习之路(11):MainWindow2010-03-03 51cto 尽管Qt提供了很方便的快速开发工具QtDesigner用来拖放界面元素,但是现在我并不打算去介绍这个工具,原因之一在于我们的学习大体上是依靠手工编写代码,过早的接触设计工具并不能让我们对Qt的概念突飞猛进……前面说过,本教程很大程度上依照的是《C++ GUI Programming with Qt4, 2nd Edition》这本书。但是,这本书中接下来...
Qt学习之路(12):菜单和工具条

Qt学习之路(12):菜单和工具条

Qt学习之路(12):菜单和工具条2010-03-03在前面的QMainWindow的基础之上,我们开始着手建造我们的应用程序。虽然现在已经有一个框架,但是,确切地说我们还一行代码没有写呢!下面的工作就不那么简单了!在这一节里面,我们要为我们的框架添加菜单和工具条。就像Swing里面的Action一样,Qt里面也有一个类似的类,叫做QAction。顾名思义,QAction类保存有关于这个动作,也就是action的信息,比如它的文本描述、图标、快捷键、回调函...
Qt学习之路(13):菜单和工具条(续)

Qt学习之路(13):菜单和工具条(续)

Qt学习之路(13):菜单和工具条(续)2010-03-03前面一节我们已经把QAction添加到菜单和工具条上面。现在我们要添加一些图片美化一下,然后把信号槽加上,这样,我们的action就可以相应啦!首先来添加图标。QAction的图标会显示在菜单项的前面以及工具条按钮上面显示。为了添加图标,我们首先要使用Qt的资源文件。在QtCreator的项目上右击,选择New File...,然后选择resource file。然后点击next,选择好位置,Fi...
Qt学习之路(14):状态栏

Qt学习之路(14):状态栏

Qt学习之路(14):状态栏2010-03-03今天的内容主要还是继续完善前面的那个程序。我们要为我们的程序加上一个状态栏。状态栏位于主窗口的最下方,提供一个显示工具提示等信息的地方。一般地,当窗口不是最大化的时候,状态栏的右下角会有一个可以调节大小的控制点;当窗口最大化的时候,这个控制点会自动消失。Qt提供了一个QStatusBar类来实现状态栏。Qt具有一个相当成熟的GUI框架的实现——这一点感觉比Swing要强一些&mdash...
Qt学习之路(15):Qt标准对话框之QFileDialog

Qt学习之路(15):Qt标准对话框之QFileDialog

Qt学习之路(15):Qt标准对话框之QFileDialog2010-03-03下面还是按照我们的进度,从Qt的标准对话框开始说起。所谓标准对话框,其实就是Qt内置的一些对话框,比如文件选择、颜色选择等等。今天首先介绍一下QFileDialog。QFileDialog是Qt中用于文件打开和保存的对话框,相当于Swing里面的JFileChooser。下面打开我们前面使用的工程。我们已经很有先见之明的写好了一个打开的action,还记得前面的代码吗?当时,我...
Qt学习之路(16):Qt标准对话框之QColorDialog

Qt学习之路(16):Qt标准对话框之QColorDialog

Qt学习之路(16):Qt标准对话框之QColorDialog2010-03-03继续来说Qt的标准对话框,这次说说QColorDialog。这是Qt提供的颜色选择对话框。使用QColorDialog也很简单,Qt提供了getColor()函数,类似于QFileDialog的getOpenFileName(),可以直接获得选择的颜色。我们还是使用前面的QAction来测试下这个函数:QColor color = QColorDialog::getColor...
Qt学习之路(17):Qt标准对话框之QMessageBox

Qt学习之路(17):Qt标准对话框之QMessageBox

Qt学习之路(17):Qt标准对话框之QMessageBox2010-03-03现在还是继续来说说Qt的标准对话框吧!这次来说一下QMessageBox以及类似的几种对话框。其实,我们已经用过QMessageBox了,就在之前的几个程序中。不过,当时是大略的说了一下,现在专门来说说这几种对话框。先来看一下最熟悉的QMessageBox::information。我们在以前的代码中这样使用过:QMessageBox::information(NULL, &q...
Qt学习之路(18):Qt标准对话框之QInputDialog

Qt学习之路(18):Qt标准对话框之QInputDialog

Qt学习之路(18):Qt标准对话框之QInputDialog2010-03-03这是Qt标准对话框的最后一部分。正如同其名字显示的一样,QInputDialog用于接收用户的输入。QInputDialog提供了一些简单的static函数,用于快速的建立一个对话框,正像QColorDialog提供了getColor函数一样。首先来看看getText函数:bool isOK;QString text = QInputDialog::getText(NULL,...
Qt学习之路(19):事件(event)

Qt学习之路(19):事件(event)

Qt学习之路(19):事件(event)2010-03-03前面说了几个标准对话框,下面不打算继续说明一些组件的使用,因为这些使用很难讲完,很多东西都是与实际应用相关的。实际应用的复杂性决定了我们根本不可能把所有组件的所有使用方法都说明白。这次来说说Qt相对高级一点的特性:事件。事件(event)是有系统或者Qt本身在不同的时刻发出的。当用户按下鼠标,敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件是在对用户操作做出响应的时候发出,...
Qt学习之路(20):事件接收与忽略

Qt学习之路(20):事件接收与忽略

Qt学习之路(20):事件接收与忽略2010-03-03本章内容也是关于Qt事件。或许这一章不能有一个完整的例子,因为对于事件总是感觉很抽象,还是从底层上理解一下比较好的吧!前面说到了事件的作用,下面来看看我们如何来接收事件。回忆一下前面的代码,我们在子类中重写了事件函数,以便让这些子类按照我们的需要完成某些功能,就像下面的代码:void MyLabel::mousePressEvent(QMouseEvent * event){ if(event->...
Qt学习之路(21):event()

Qt学习之路(21):event()

Qt学习之路(21):event()2010-03-03今天要说的是event()函数。记得之前曾经提到过这个函数,说在事件对象创建完毕后,Qt将这个事件对象传递给QObject的event()函数。 event()函数并不直接处理事件,而是将这些事件对象按照它们不同的类型,分发给不同的事件处理器(event handler)。event() 函数主要用于事件的分发,所以,如果你希望在事件分发之前做一些操作,那么,就需要注意这个event()函数了。为了达...
Qt学习之路(22):事件过滤器

Qt学习之路(22):事件过滤器

Qt学习之路(22):事件过滤器2010-03-03Qt创建了QEvent事件对象之后,会调用QObject的event()函数做事件的分发。有时候,你可能需要在调用event()函数之前做一些另外的操作,比如,对话框上某些组件可能并不需要响应回车按下的事件,此时,你就需要重新定义组件的event()函数。如果组件很多,就需要重写很多次 event()函数,这显然没有效率。为此,你可以使用一个事件过滤器,来判断是否需要调用event()函数。QOjbect...
Qt学习之路(23):自定义事件

Qt学习之路(23):自定义事件

Qt学习之路(23):自定义事件2010-03-03Qt允许你创建自己的事件类型,这在多线程的程序中尤其有用,当然,也可以用在单线程的程序中,作为一种对象间通讯的机制。那么,为什么我需要使用事件,而不是使用信号槽呢?主要原因是,事件的分发既可以是同步的,又可以是异步的,而函数的调用或者说是槽的回调总是同步的。事件的另外一个好处是,它可以使用过滤器。Qt中的自定义事件很简单,同其他类似的库的使用很相似,都是要继承一个类进行扩展。在Qt中,你需要继承的类是QE...
Qt学习之路(24):QPainter

Qt学习之路(24):QPainter

Qt学习之路(24):QPainter2010-03-03 51cto FinderCheng多些大家对我的支持啊!有朋友也提出,前面的几节有关event的教程缺少例子。因为event比较难做例子,也就没有去写,只是把大概写了一下。今天带来的是新的部分,有关Qt的2D绘图。这部分不像前面的内容,还是比较好理解的啦!所以,例子也会增加出来。有人问豆子拿Qt做什么,其实,豆子就是在做一个Qt的画图程序,努力朝着Photoshop和GIMP的方向发展。但这终究要...
Qt学习之路(26):反走样

Qt学习之路(26):反走样

Qt学习之路(26):反走样2010-03-09 51cto FinderCheng今天继续前面的内容。既然已经进入2D绘图部分,那么就先继续研究一下有关QPainter的东西吧!反走样是图形学中的重要概念,用以防止“锯齿”现象的出现。很多系统的绘图API里面都会内置了反走样的算法,不过默认一般都是关闭的,Qt也不例外。下面我们来看看代码。这段代码仅仅给出了paintEvent函数,相信你可以很轻松地替换掉前面章节中的相关代码。vo...
Qt学习之路(27):渐变填充

Qt学习之路(27):渐变填充

Qt学习之路(27):渐变填充2010-03-09 51cto FinderCheng前面说了有关反走样的相关知识,下面来说一下渐变。渐变是绘图中很常见的一种功能,简单来说就是可以把几种颜色混合在一起,让它们能够自然地过渡,而不是一下子变成另一种颜色。渐变的算法比较复杂,写得不好的话效率会很低,好在很多绘图系统都内置了渐变的功能,Qt也不例外。渐变一般是用在填充里面的,所以,渐变的设置就是在QBrush里面。Qt提供了三种渐变画刷,分别是线性渐变(QLin...
Qt学习之路(28):坐标变换

Qt学习之路(28):坐标变换

Qt学习之路(28):坐标变换2010-03-09 51cto FinderCheng经过前面的章节,我们已经能够画出一些东西来,主要就是使用QPainter的相关函数。今天,我们要看的是QPainter的坐标系统。同很多坐标系统一样,QPainter的默认坐标的原点(0, 0)位于屏幕的左上角,X轴正方向是水平向右,Y轴正方向是竖直向下。在这个坐标系统中,每个像素占据1 x 1的空间。你可以把它想象成是一张坐标值,其中的每个小格都是1个像素。这么说来,一...
Qt学习之路(30):Graphics View Framework

Qt学习之路(30):Graphics View Framework

Qt学习之路(30):Graphics View Framework2010-03-09 51cto FinderCheng现在基本上也已经到了2D绘图部分的尾声,所谓重头戏都是在最后压轴的,现在我们就要来看看在绘图部分功能最强大的Graphics View。我们经常说KDE桌面,新版本的KDE桌面就是建立在Graphics View的基础之上,可见其强大之处。Qt的白皮书里面这样写道:“Qt Graphics View 提供了用于管理和交互大...
<< 191 192 193 194 195 196 197 198 199 200 >>