Qt
文章平均质量分 72
尹成
尹成微信18510341407,助理微信18514203048
展开
-
Qt入门(3)——信号和槽
信号和槽用于对象间的通讯。信号/槽机制是Qt的一个中心特征并且也许是Qt与其它工具包的最不相同的部分。在图形用户界面编程中,我们经常希望一个窗口部件的一个变化被通知给另一个窗口部件。更一般地,我们希望任何一类的对象可以和其它对象进行通讯。例如,如果我们正在解析一个XML文件,当我们遇到一个新的标签时,我们也许希望通知列表视图我们正在用来表达XML文件的结构。 较老的工具包使用一种被原创 2014-09-04 10:44:03 · 2398 阅读 · 0 评论 -
Qt入门(13)——Qt的调用退出
创建了一个窗口,我们现在使这个应用程序在用户让它退出的时候退出。我们也会使用一个比默认字体更好的一个字体。/******************************************************************** Qt教程一 - 2****************************************************************原创 2014-09-30 06:38:15 · 2258 阅读 · 0 评论 -
Qt入门(14)——父窗口部件和子窗口部件
这个例子演示了如何创建一个父窗口部件和子窗口部件。我们将会保持这个程序的简单性,并且只使用一个单一的父窗口部件和一个独立的子窗口部件。原创 2014-09-30 06:40:58 · 3520 阅读 · 0 评论 -
Qt入门(15)——使用窗口部件
下面是如何创建一个你自己的窗口部件,描述如何控制一个窗口部件的最小大小和最大大小,并且介绍了窗口部件的名称。 class MyWidget : public QWidget { public: MyWidget( QWidget *parent=0, const char *name=0 ); };这里我们创建了一个新类。因为这个类继承了QWidget,所以原创 2014-09-30 06:43:31 · 1960 阅读 · 0 评论 -
Qt入门(16)——组装窗口部件
这个例子显示了创建几个窗口部件并用信号和槽把它们连接起来,和如何处理重新定义大小事件。 #include #include #include #include #include #include 这里显示的是三个新的被包含的头文件。qslider.h和qlcdnumber.h在这里是因为我们使用了两个新的窗口部件,QSlider和QLCDN原创 2014-09-30 06:45:23 · 1855 阅读 · 0 评论 -
Qt入门(17)——组装复杂的控件
下面是如何把两个窗口部件封装成一个新的组件。首先,我们使用一个自定义的窗口部件作为一个子窗口部件。#include #include #include #include #include #include #include class LCDRange : public QVBox{public: LCDRange( QWidget *parent=0, const char *name=0原创 2014-09-30 06:47:55 · 1672 阅读 · 0 评论 -
Qt入门(18)——使用信号和槽连接控件
x显示了如何使用信号和槽来创建自定义窗口部件,和如何使用更加复杂的方式把它们连接起来。首先,源文件被我们分成几部分并放在放在t7目录下。t7/lcdrange.h包含LCDRange类定义。t7/lcdrange.cpp包含LCDRange类实现。t7/main.cpp包含MyWidget和main。一行一行地解说t7/lcdrange.h这个文件主要利用了第六章的main.cpp,在这里只是说明原创 2014-09-30 06:51:06 · 2435 阅读 · 0 评论 -
Qt入门(19)——自定义窗口部件
我们介绍可以画自己的第一个自定义窗口部件。我们也加入了一个有用的键盘接口。我们添加了一个槽:setRange()。 void setRange( int minVal, int maxVal );现在我们添加了设置LCDRange范围的可能性。直到现在,它就可以被设置为0~99。在构造函数中有一个变化(稍后我们会讨论的)。 void LCDRange::setRange( in原创 2014-09-30 06:54:38 · 2633 阅读 · 0 评论 -
Qt入门(20)——Qt模块简介
当你安装Qt时,这些模块会被构建到库中。在Qt企业版、Qt评估版和Qt自由版中,包含所有的模块。对于Qt专业版,提供基本的模块——工具、核心、窗口部件、对话框、图标视图和工作区模块。画布模块画布模块提供了一个名为QCanvas的高度优化的二维绘图区。 画布可以有任意数量的QCanvasItems。画布项则可以有任意的形状、尺寸和内容,在画布中能自由的移动,并且能被检查出是否有冲突。画布项能被设置成原创 2014-09-30 06:59:56 · 2354 阅读 · 1 评论 -
Qt入门(7)——窗口几何结构
QWidget提供了几个处理窗口几何结构的函数。这些函数中的几个操作纯客户区域(例如不包含窗口框架的窗口),其它一些包括窗口框架。它们之间的区别在某种意义上被完成覆盖明显地最普通的方法。包括窗口的框架:x(), y(), frameGeometry(), pos() and move()不包括窗口的框架:geometry(), width(), height(), rect() and size(原创 2014-09-30 06:21:10 · 2003 阅读 · 0 评论 -
Qt入门(12)——Qt国际化
应用的国际化就是使应用成为能被非本国的人使用的过程。有的情况下,国际化很简单,例如,使一个US应用可被Australian或者British用户理解,工作可能少于几个拼写修正。但是使一个US应用可以被Japanese用户使用,或者一个Korean应用可被German用户使用,就会需要软件不仅工作于不同语言下,还要使用不同的输入技术、字符编码和表达习惯。对所有用户可见的文本使用QString既然QS原创 2014-09-30 06:34:11 · 1922 阅读 · 0 评论 -
Qt入门(10)——调试技术
命令行参数当你运行Qt程序时,你可以指定几个命令行参数来帮助你调试。-nograb 应用程序不再捕获鼠标或者键盘。当程序在Linux下运行在gdb调试器中时这个选项是默认的。-dograb 忽略任何隐含的或明显得-nograb。即使-nograb出现在命令行的最后,-dograb也会超过-nograb生效的。-sync 在X同步模式下运行应用程序。同步模式强迫X服务器立即执行每一个X客户端的请求,原创 2014-09-30 06:28:24 · 2299 阅读 · 0 评论 -
Qt入门(11)——Qt插件
Qt提供了一个简单地插件接口,可以轻松地生成作为独立组件的定制数据库驱动、图象格式、文本编解码器(text codec)、风格(style)和部件。警告:Qt 3.0.5对插件的一些方面做了改变,具体涉及到装载、路径操作和库版本。这些变化的结果是,Qt 3.0.4及以前版本编译的插件都不能用于Qt 3.0.5及以后版本。写一个插件通过以下方式完成:写适当的插件基类的子类,实现几个函数,再添加一个宏原创 2014-09-30 06:30:55 · 1813 阅读 · 0 评论 -
Qt入门(6)——Qt的界面布局
Qt提供四种布局: VBoxLayout:垂直布局HBoxLayout:水平布局GridLayout:二维布局。FormLayout: 窗体布局 水平布局管理器可以把它所管理的部件以水平的顺序依次排开,例如上图中中间的“Centigrade”和“Fahrenheit”两段文字,就是水平排列的,这个时候就可以用水平布局管理器来实现。垂直管理器类似,它可以把它所管理的部件以垂直的顺序依次排开,例如上图原创 2014-09-04 11:30:04 · 3946 阅读 · 0 评论 -
Qt入门(1)——初识Qt
Qt是一个跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等原创 2014-09-04 10:35:00 · 4206 阅读 · 1 评论 -
Qt入门(2)——使用Qt编写的Hello world
对于一个qt初学者来说,一步一步来直到作出一个hello world是最基础的入门。 从菜单:应用程序->编程中找到QtCreator 打开QtCreator 文件->新建文件或工程…… ,选择 其他项目->空的Qt项目,点击 chooes 按钮。 在下图名称处,输入工程名称 helloworld。“创建路径”就是你想把该项目放到哪里,随便你选择哪里都行,使用默认的也行。弄好以后,点击“下一步”原创 2014-09-04 10:40:09 · 6663 阅读 · 1 评论 -
Qt入门(4)——Qt常见控件
Qt提供了大量的内建控件及通用对话框可满足程序员的绝大部分要求。我们将对这些控件和对话框作一个大概的介绍。1. QLabel定义QLabel* m_labelOrdered = newQLabel("0", this);对文字的左右对齐设置m_labelOrdered->setAlignment(Qt::AlignLeft);//左对齐其它还有,横向对齐:Qt::AlignAuto – 根据语言内原创 2014-09-04 10:48:43 · 4060 阅读 · 0 评论 -
Qt入门(7)——QApplication类
QApplication类管理图形用户界面应用程序的控制流和主要设置。它包含主事件循环,在其中来自窗口系统和其它资源的所有事件被处理和调度。也用于处理应用程序的初始化和结束,并且提供对话管理。它也处理绝大多数系统范围和应用程序范围的设置。对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication对象,而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。QAppli原创 2014-09-11 17:32:35 · 2528 阅读 · 0 评论 -
Qt入门(5)——用Qt控件创建一个电话本界面
具体实现步骤:一、首先用 Qt Designer 创建一个两张图的对话框,分别保存为listdialog.ui和editdialog.ui文件要注意其中各个空间对应的名称修改好二、新建一个Qt应用程序工程,取名为listdialog三、删除已有的listdialog.ui和ui_listdialog.h,listdialog.h,listdialog.cpp文件四、将listdialog.ui和e原创 2014-09-04 10:53:44 · 4084 阅读 · 0 评论 -
Qt入门(8)——事件和事件过滤器
在Qt里,一个事件是继承自QEvent的对象。事件通过调用QObject::event(),被发送到继承自 QObject 的对象。事件发送就是一个事件已经产生,由 QEvent正好去表达,且QObject 需要去回应。多数事件针对 QWidget和他的子类的,此外还有些不和图形相关的重要事件,比如,套接字激活,——某种被用于QSocketNotifier运作的事件。某些事件来自窗口系统,如QMo原创 2014-09-30 06:25:57 · 1827 阅读 · 0 评论 -
Qt入门(9)——Qt中的线程支持
Qt对线程提供了支持,基本形式有独立于平台的线程类、线程安全方式的事件传递和一个全局Qt库互斥量允许你可以从不同的线程调用Qt方法。警告:所有的GUI类(比如,QWidget和它的子类),操作系统核心类(比如,QProcess)和网络类都不是线程安全的。QRegExp使用一个静态缓存并且也不是线程安全的,即使通过使用QMutex来保护的QRegExp对象。启用线程支持在Windows上安装Qt时,原创 2014-09-30 06:28:12 · 1730 阅读 · 0 评论