qt程序设计基础
- 格式:doc
- 大小:2.64 MB
- 文档页数:7
Qt内置控件⏹按钮控件⏹容器控件⏹项目查看控件⏹显示控件⏹输入控件⏹Qt提供了大量的内建控件及通用对话框可满足程序员的绝大部分要求。
⏹Qt按钮控件⏹Qt提供了四种“按钮”:QPushButton,QtoolButton,QcheckBox和QRadioButton。
QPushButton和QToolButton一般执行某个动作,但也可用作触发按钮。
QCheckBox一般用来提供多选项,而QRadioButton常用于提供单选项。
⏹QToolButton⏹QToolButton类提供了用于命令或者选项的可以快速访问的按钮,通常可以用在QToolBar里面。
⏹工具按钮是提供对特定命令或者选项快速访问的特殊按钮。
和普通的命令按钮不同,工具按钮通常不显示文本标签,而是图标。
它的经典用法是选择工具,例如在一个绘图程序中的“笔”工具。
这个被ToolButton 作为切换按钮重新实现。
⏹QToolButton支持自动浮起。
在自动浮起模式中,按钮只有在鼠标指向它的时候才绘制三维的框架。
当按钮被用在QToolBar里面的时候,这个特征会自动被启用。
可以使用setAutoRaise()来改变它。
QToolButton应用1.#ifndef SYSDIALOG_H2.#define SYSDIALOG_H3.#include<QtGui>4.class SysDialog:public QDialog5.{6.Q_OBJECT7.public:8.SysDialog(QWidget*parent=0);9.private:10.QToolButton*toolButtonState;11.QToolButton*toolButtonAlarm;12.QToolButton*toolButtonQuit;13.};14.#endif//SYSDIALOG_H1.#include"sysdialog.h"2.#include<QtGui>3.SysDialog::SysDialog(QWidget*parent)4.:QDialog(parent)5.{6.this->setMinimumSize(400,240);7.this->setMaximumSize(400,240);8.this->setWindowIcon(QPixmap(":/images/1.png"));9.this->setWindowTitle(tr("家庭智能灯光管理系统"));10.toolButtonState=new QToolButton(this);11.toolButtonState->setGeometry(QRect(20,60,100,100));12.toolButtonState->setText(tr("自动管理"));13.toolButtonState->setIcon(QPixmap(":/images/1.png"));14.toolButtonState->setIconSize(QPixmap(":/images/1.png").size());15.toolButtonState->setAutoRaise(TRUE);16.toolButtonState->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);17.…18.}1.#include<QApplication>2.#include<QTextCodec>3.#include"sysdialog.h"4.int main(int argc,char*argv[])5.{6.QApplication app(argc,argv);7.//中文支持8.QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));9.SysDialog*win=new SysDialog();10.win->show();11.return app.exec();12.}⏹Qt单页容器控件⏹Qt容器类控件是指可容纳其他控件的控件。
QTableWidget 是Qt 中的表格组件类。
在窗体上放置一个QTableWidget 组件后,可以在 Property Editor 里对其进行属性设置,双击这个组件,可以打开一个编辑器,对其 Colum、Row 和 Item 进行编辑。
一个 QTableWidget 组件的界面基本结构如图 1 所示,这个表格设置为 6 行 5 列。
图 1 一个 QTableWidget 表格的基本结构和工作区的行、列索引号表格的第 1 行称为行表头,用于设置每一列的标题,第 1 列称为列表头,可以设置其标题,但一般使用缺省的标题,即为行号。
行表头和列表头一般是不可编辑的。
除了行表头和列表头之外的表格区域是内容区,内容区是规则的网格状,如同一个二维数组,每个网格单元称为一个单元格。
每个单元格有一个行号、列号,图 1 表示了行号、列号的变化规律。
在 QTableWidget 表格中,每一个单元格是一个 QTable Widgetltem 对象,可以设置文字内容、字体、前景色、背景色、图标,也可以设置编辑和显示标记。
每个单元格还可以存储一个 QVariant 数据,用于设置用户自定义数据。
图 2 实例的运行时界面实例以 QTableWidget 为主要组件,演示 QTableWidget 一些主要操作的实现。
实例运行时的界面如图 2 所示,该实例将演示以下功能的实现方法:•设置表格的列数和行数,设置表头的文字、格式等。
•初始化表格数据,设置一批实例数据填充到表格里。
•插入行、添加行、删除当前行的操作。
•遍历表格所有单元格,读取表格内容到一个 QPlainTextEdit 里,表格的一行数据作为一行文本。
•表格上选择的当前单元格变化时,在状态栏显示单元格存储的信息。
界面设计与初始化主窗体从 QMainWindow 继承而来。
在图 2 所示的窗口上,一个QTableWidget 组件和一个 QPlainTextEdit 组件组成上下分割布局 splitter。
目录第一章 LINUX图形用户界面GUI介绍 (2)1.1常用GUI介绍 (2)1.2关于Q T (3)1.3Q T/E MBEDDED简介 (4)第二章 QT的安装 (5)2.1设置环境变量 (6)2.2使用脚本ARM-BUILD 编译Q T (7)第三章 QT的编程 (7)3.1Q T/E MBEDDED 开发一个嵌入式应用的过程 (7)3.2“HELLO”Q T的初探 (7)3.2.1 建立工程文件 (7)3.2.2 产生源代码 (12)3.2.3 添加main.cpp文件 (13)3.2.4修改hello.pro文件 (13)3.2.5 生成 MakeFile 文件 (14)3.2.6 修改 hello.cpp 文件 (15)3.3将HELLO 移植到JXARM9-2410实验箱上 (19)3.3.1 重新生成修改 Makefile (19)3.3.2 制作启动器 (22)3.3.3 重新生成cramfs文件 (23)3.3.4 烧写重新生成的cramfs文件到JXARM9-2410实验箱 (23)第一章 Linux图形用户界面GUI介绍所谓GUI(Graphics User Interface)就是图形用户界面。
图形用户界面的广泛流行时当今计算机技术的重大成就之一,它极大的方便了非专业用户的使用,人们不需要死记硬背大量的命令,而可以通过窗口,菜单方便的操作。
随着手持式设备的硬件条件的提高,嵌入式系统对轻量级GUI的需求越来越迫切。
近来的市场需求显示,越来越多的嵌入式系统,包括PDA、机顶盒、DVD/VCD 播放机、WAP 手机等等系统均要求提供全功能的Web浏览器。
这包括HTML 4.0的支持、JavaScript的支持,甚至包括Java虚拟机的支持。
而这一切均要求有一个高性能、高可靠的GUI的支持。
另外,在工业实时控制系统中对GUI的要求也越来越高。
目前许多这类系统采用比较简单的手法实现GUI。
给初学Qt者的小TIP1、Hello, Qt!我们以一个非常简单的 Qt 程序开始 Qt 的学习。
我们首先一行行的分析代码,然后我们将会看到怎样编译和运行这个程序。
1 #include <QApplication>2 #include <QLabel>3 int main (int argc, char *argv [])4 {5 QApplication app (argc, argv);6 QLabel *label = new QLabel ("Hello Qt!");7 label->show ();8 return app. exec ();9 }第 1 行和第 2 行包含了两个类的定义:QApplication 和 QLabel。
对于每一个 Qt 的类,都会有一个同名的头文件,头文件里包含了这个类的定义。
因此,你如果在程序中使用了一个类的对象,那么在程序中就必须包括这个头文件。
第 3 行是程序的入口。
几乎在使用 Qt 的所有情况下,main()函数只需要在把控制权转交给 Qt 库之前执行一些初始化,然后 Qt 库通过事件来向程序告知用户的行为。
argc 是命令行变量的数量,argv 是命令行变量的数组。
这是一个 C/C++特征。
它不是 Qt 专有的,无论如何 Qt 需要处理这些变量第 5 行定义了一个 QApplication 对象 App。
QApplication 管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。
App 的创建需要 argc 和 argv 是因为 Qt 支持一些自己的命令行参数。
在每一个使用Qt 的应用程序中都必须使用一个QApplication 对象,并且在任何 Qt 的窗口系统部件被使用之前创建此对象是必须的。
App 在这里被创建并且处理后面的命令行变量(比如在 X 窗口下的-display)。
请注意,所有被 Qt 识别的命令行参数都会从 argv中被移除(并且 argc 也因此而减少)。
QT编程入门看完这段Qt入门介绍,还是什么都没看明白,只确定一点Qt中所有类都是以Q开头的,而且每个单词之间没有间隔,感觉与Symbian有完全不同的框架跟编程。
Qt是一个跨平台的图形用户界面(GUI)的集成开发工具。
作为一篇初学者的入门学习指导,这里我们将通过一个记事本的小程序来向大家介绍Qt的一些基础知识。
此后你可以参考我们的技术概述和API文档来进行开发。
Hello Notepad在第一个例子中,我们创建了一个很简单的窗口,窗口中显示了“This is a QTextEdit”,这可以说是一个最简单的拥有用户图形界面的Qt程序了。
以下是代码:#include#includeintmain(intargv,char**args){QApplicationapp(argv,args);QTextEdittextEdit;textEdit.show();returnapp.exec();}123456789101112#include#includeintmain(intargv,char**args){QApplicationapp(argv,args);QTextEdittextEdit;textEdit.show();returnapp.exec();}现在让我们来对上面的代码逐行解释一下,前两行是包含QApplication和QTextEdit类的头文件,这两个类是我们程序中待会需要用到的。
所有的Qt类都一个以它们类名命名的头文件。
第六行创建了一个QApplication对象,这个对象管理着整个程序的资源,它是运行一个拥有用户图形界面的Qt程序所必需的。
由于Qt接受一些命令行参数,在构造QApplication对象需要传递argv和args两个参数。
第八行创建了一个QT extEdit对象。
QT extEdit对象是用户图形界面(GUI)中一个可见元素。
在Qt中,我们叫这类可见元素为widget,其他widget还有滚动条(QScrollBar),标签(QLabel),以及单选框(QRadioButton)等等。
qt开发课程设计一、教学目标本课程旨在通过Qt开发的教学,让学生掌握Qt的基本概念、使用方法和编程技巧。
通过本课程的学习,学生将能够:1.理解Qt的基本概念和架构,包括Qt Quick、Qt Widgets等;2.熟练使用Qt Creator进行应用程序的开发;3.掌握Qt中的基本控件和布局,能够灵活运用它们进行界面设计;4.掌握Qt中的事件处理、多线程编程等高级特性;5.能够独立完成Qt应用程序的设计和开发,解决实际问题。
二、教学内容根据课程目标,我们将按照以下大纲进行教学:1.Qt简介:介绍Qt的基本概念、历史和架构;2.Qt Creator的使用:介绍Qt Creator的安装、界面布局和基本使用方法;3.基本控件和布局:介绍Qt中的基本控件和布局,如按钮、文本框、label等,并演示如何使用它们进行界面设计;4.事件处理:介绍Qt中的事件处理机制,如鼠标事件、键盘事件等,并演示如何使用事件处理函数进行应用程序的开发;5.多线程编程:介绍Qt中的多线程编程技术,如QThread、QMutex等,并演示如何使用多线程进行高效的数据处理;6.实战项目:通过一个实际项目,让学生综合运用所学知识进行Qt应用程序的设计和开发。
三、教学方法我们将采用讲授法、讨论法和实验法进行教学:1.讲授法:主要用于讲解Qt的基本概念、使用方法和编程技巧;2.讨论法:通过小组讨论,让学生深入理解Qt的各种特性和应用场景;3.实验法:通过实际操作,让学生掌握Qt编程的技巧和方法。
四、教学资源我们将使用以下教学资源:1.教材:《Qt Creator入门与实战》;2.参考书:《Qt 5程序设计实战入门》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。
以上教学资源将充分支持教学内容和教学方法的实施,帮助学生更好地理解和掌握Qt开发技能。
五、教学评估为了全面、公正地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性;2.作业:布置适量的作业,评估学生对Qt知识的理解和应用能力;3.考试:进行期中和期末考试,评估学生对Qt知识的掌握程度;4.项目实践:让学生完成一个实际项目,评估学生的综合运用能力和解决问题的能力。