文档库 最新最全的文档下载
当前位置:文档库 › 基于Qt的界面程序设计

基于Qt的界面程序设计

基于Qt的界面程序设计
基于Qt的界面程序设计

目录

一、设计目的 (2)

二、设计任务及要求 (2)

三、方案设计 (2)

1、内核编译 (2)

2、文件系统 (2)

四、嵌入式系统开发环境建立 (2)

1、安装交叉编译器 (2)

2、解压和安装tslib (3)

3、解压和安装Qt4.7(方法1和方法2) (5)

4、解压文泉驿中文正黑体字库 (8)

5、制作文件系统 (8)

五、烧写 (16)

六、NFS挂载 (18)

七、QT界面设计(LED实现) (24)

1运行qt-creator-linux-86-opensource-2.7.0.bin安装qtcreater (24)

2 创建一个工程 (24)

3、LED界面设计---(无UI界面,直接通过代码实现) (25)

八、结果 (27)

九、设计过程中遇到的问题 (27)

遇到的问题及解决方法 (27)

1、无法远程挂载nfs服务 (27)

十、设计总结 (29)

十一、附录:主要程序代码 (30)

一、设计目的

1.进一步巩固嵌入式系统的基本知识;

2.掌握嵌入式应用系统的基本结构;

3.掌握嵌入式系统开发环境建立和使用;

4.掌握嵌入式系统基本驱动、应用程序的设计调试和编译移植方法;

5.学会查阅有关专业资料及设计手册;

6.QT界面编程。

二、设计任务及要求

1、掌握嵌入式系统开发环境建立和使用;

2、掌握嵌入式系统基本驱动、应用程序的设计调试和编译移植方法;

3、QT在PC上的安装;

4、QT在开发板上的移植;

1)、触摸屏原理及tslib库的工作原理;

2)、QT设计LED灯控制,设计方案自由发挥,可以单个控制LED灯、也可以流水灯的控制,可控制流水灯的频率(1-5HZ可选);

5、QT界面程序设计;

6、编写设计说明书(方案的确定、设计环节的考虑及必要说明等)及设备的使用说明;

7、绘制有关图纸.;

三、方案设计

1、内核编译

有两种方案,一种是静态编译内核,另一种是动态编译内核。静态编译在编译的过程中比较麻烦,而且还要编译镜像文件;动态编译虽然较简单,但是每次都要编译。我选择的是动态编译,因为我暂时没有找到内核的蜂鸣器驱动,没有办法编译到内核,所以选择动态加载的方式来加载驱动来调试程序。

2、文件系统

可以选择NFS远程挂载,也可以把文件系统编译成镜像文件,然后烧到板子上。编译镜像文件的话,只要我们制作的文件里面的东西改变就要重新编译,重新导入,比较麻烦。所以我选择NFS挂载,等所有调试都结束了以后,都没问题了,在把它做成镜像文件烧到开发板上。

四、嵌入式系统开发环境建立

1、安装交叉编译器

(1)、解压EABI-4.3.3_EmbedSky_20100610.tar.bz2

tar xvf EABI_4.3.3_EmbedSky_20100610.tar.bz2 -C /

(2)、设置环境变量

(3)、永久设置环境变量

vi /etc/profile 在最后添加一行

export PATH=/opt/EmbedSky/4.3.3/bin:$PATH ,保存加退出。

2、解压和安装tslib

(1)、解压tslib.tar.gz

tar -xzvf tslib.tar.gz -C /opt/EmbedSky/

(2)、创建目录

mkdir /opt EmbedSky/tslib_install

(3)、生成configure文件

./autogen.sh

(4)、配置configure文件

./configure --host=arm-linux -disable-hp3600 --disable-arctic2 --disable-mk712 --disable-collie --disable-corgi --disable-ucb1x00 --disable-linear-h2200 --with-gnu-ld –prefix=/opt/EmbedSky/tslib_install ac_cv_func_malloc_0_nonnull=yes

(5)、编译(大概20~30分钟)

make

(6)、安装

make install

(7)、如果以上步骤没错,则可以在/opt/tslib_install下出现我们需要的库文件,这些库文件在移植会用到。

3、解压和安装Qt4.7(方法1和方法2)

3.1、第一种方案:

(1)、解压qt-everywhere-opensource-src-4.7.0.tar.gz到/opt/EmbedSky目录后,改名为qt-source-4.7

tar -zxvf qt-everywhere-opensource-src-4.7.0.tar.gz -C /opt/EmbedSky/

mv /opt/EmbedSky/qt-everywhere-opensource-src-4.7.0-beta2 /opt/EmbedSky/qt-source-4.7

(2)、创建一个安装目录,用于安装 qt-4.7

mkdir -p /opt/Embedsky/qt-4.7-arm

(3)、配置configure

./configure -embedded arm -release -opensource -silent -qt-libpng -qt-libjpeg -qt-libmng -qt-libtiff -nomultimedia -make libs -nomake tools -make examples -nomake docs -make demos -qt-kbd-linuxinput -qt-mouse-tslib -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-qt3support -no-nis -no-cups -no-iconv -no-dbus -no-openssl -no-fast -no-accessibility -no-scripttools -no-mmx -no-multimedia -svg -no-webkit -no-3dnow -no-sse -no-sse2 -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -no-glib -prefix /opt/EmbedSky/qt-4.7-arm -I /opt/EmbedSky/tslib_install/include -L

/opt/EmbedSky/tslib_install/lib

(4)、编译(大概两个小时)

gmake

(5)、安装

gmake install

(6)、安装成功后/opt/EmbedSky/qt-4.7.4-arm里面有lib和plugins和bin下的qmake

3.2、第二种方案(用arm_qt

4.7_build脚本):

(1)、创建目录qt-4.7:mkdir qt-4.7

(2)、解压qt-everywhere-opensource-src-4.7.0.tar.gz到/opt/EmbedSky/qt-4.7目录

(3)、把arm_qt4.7_build拷贝到qt-4.7目录下。cp /mnt/hgfs/share/schoollinux/linux/arm_qt4.7_build

/opt/EmbedSky/qt-4.7

(4)、运行arm_qt4.7_build即可。./arm_qt4.7_build

(5)、arm_qt4.7_build脚本的部分内容如下(即该脚本包括了./configure配置,gmake编译,gmake install 安装,三步骤):

(6)、安装成功后/opt/EmbedSky/qt-4.7/__install/arm里面有lib和plugins和bin下的qmake

4、解压文泉驿中文正黑体字库

5、制作文件系统

(1)、将root_qt_4.5_2.6.30.4_20100601.tar.bz2 解压到根下

(2)、修改文件系统的名字和用户权限

(3)、触摸屏校准tslib相关文件

将/opt/EmbedSky/tslib_install/lib/目录下的文件拷贝到文件系统目录的root_nfs/lib/下

拷贝tslib 提供的触摸屏校准程序ts_calibrate至root_nfs/bin/目录下

(4)、Qt4.7相关文件

在文件系统中创建文件夹/opt/qt-4.7用于存放 qt-4.7 的生成文件

mkdir -p /opt/EmbedSky/root_nfs/opt/qt-4.7

将/opt/EmbedSky/qt-4.7/arm/lib 和 /opt/EmbedSky/qt-4.7/arm/plugins 拷贝到文件系统中的/opt/EmbedSky/root_nfs/opt/qt-4.7 文件夹中

mkdir /opt/EmbedSky/root_nfs/opt/qt-4.7/bin目录用于存放自己的程序

拷贝自己的可执行文件到/opt/EmbedSky/root_nfs/opt/qt-4.7/bin

(5)、拷贝字体文件

(6)、修改文件系统中的profile文件

vi /etc/profile

export set QPEDIR=/opt/qt-4.5 改成 export set QPEDIR=/opt/qt-4.7

export set QPEDIR=/opt/qt-4.5 改成 export set QPEDIR=/opt/qt-4.7

(7)、在/bin目录下修改QT运行的脚本文件qt4

vi bin/qt4

第一:

export set QTDIR=/opt/qt-4.5 改成export set QTDIR=/opt/qt-4.7 export set QPEDIR=/opt/qt-4.5 改成export set QPEDIR=/opt/qt-4.7

第二:

if [ -f /etc/pointercal ] ; then

$QPEDIR/bin/hellocn -qws 1> /dev/null 2>/dev/null

else

ts_calibrate

# $QPEDIR/bin/mousecalibration

$QPEDIR/bin/hellocn -qws 1> /dev/null 2>/dev/null

Fi

改成

if [ -f /etc/pointercal ] ; then

$QPEDIR/bin/helloword -qws 1> /dev/null 2>/dev/null

else

ts_calibrate

# $QPEDIR/bin/mousecalibration

$QPEDIR/bin/helloword -qws 1> /dev/null 2>/dev/null

Fi

(8)、在vi etc/init.d/rcS下注释掉net_set和/etc/rc.d/init.d/leds start,加上ifconfig eth0 192.168.1.6。以便开发板在远程挂载的时候可以顺利的挂上文件系统。

到了这里,qt4.7移植到文件系统的工作已经完成。

5、内核的静态编译(加载LED灯驱动)

5.1、第一种方案:通过make menuconfig来配置内核

(1)、解压liux-2.6.30.4-20090826.tar.bz2 到根

(2)、配置裁剪内核

(3)、输入make menconfig 弹出以下菜单

(4)、选择Load an Alternate Configuration File,将弹出配置文件选择对话框,在文本框中输入配置文件config_EmbedSky_A70_256MB,如下图,选择“OK”按回车键完成配置文件的选择:

(5)、完成配置文件的选择后,菜单将进入到初始界面,接下来将根据下面的步骤来完成对LED 驱动的支持,通过计算机键盘上下键选择Device Drivers 并按回车,将出现以下菜单:

(6)、按上下键选择Character devices 并按回车,将出现以下菜单:

(7)、按上下键选择EmbedSky SKY2440/TQ2440 Board GPIO Test (Control LED) 并按y 键,前面的<>内将有*号,表明选中Led 驱动,如下图:

(8)、按左右键选择Exit 回到上一级菜单,当返回到初始界面时,选择save an Alternate Configuration File

(9)、默认.config,选择ok保存即可

5.2、第二种方案:

因为内核默认是有加载LED灯驱动的。直接把config_EmbedSky_A70_256MB的内容拷贝给.config即可

5.3、最后执行make zImage,生成内核镜像

5.4、编译完成后,在/opt/EmbedSky/linux-2.

6.30.4/arch/arm/boot的目录下会生成zImage

五、烧写

1、windows下超级终端设置

●打开Windows下的“开始”→“附件”→“通讯”→“超级终端”

●设置串口连接参数:波特率:115200,数据为8位,无奇偶校验位,停止位1,无硬件流●把开发板的串口线和PC机相连,在超级终端的窗口里应能显示相关的串口信息。

超级终端和板子连接成功以后,

2、格式化NandFlash

3、选择1烧写U-boot,然后用dnw传送U-boot文件

4、选择3烧写内核,然后用dnw传送zImag文件

5、选择6烧写文件系统,然后通过dnw传送文件系统yaffs.img的镜像

六、NFS挂载

在centos配置nfs服务的步骤如下:1、setup

2、按空格键选中nfs服务。

3、禁用防火墙

按tab保存后退出。

嵌入式系统之基于QT的简单计算器

嵌入式系统课程设计报告 题目:基于QT的简单计算器 专业:计算机科学与技术 班级: 姓名: 学号: 指导老师: 日期:2012-12-26 第一章前言 设计背景 计算器(calculator;counter)一般是指“电子计算器”,计算器是能进行数学运算的手持机器,拥有集成电路芯片,其结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑)。计算器这一小小的程序机器实际上是从计算机中割裂出来的衍生品,虽然功能较单一,但因其操作模式的方便快捷和价格的低廉,携带方便等特点,已经被广泛应用于工程、学习、商业贸易等日常生活中,极大的方便了人们对于数字的整合运算,成为人们生活和办公中的必备品之一,深得使用者的青睐。 设计目的 本程序是基于linux下的嵌入式开发,所用软件为QT Creator,程序虽然简单,但是通过本程序的设计,可以进一步了解嵌入式系统开发工具以及熟悉linux环境下的常用命令,为以后进入嵌入式领域打下一定的基础。 通过该计算器程序软件的设计,培养独立思考、综合运用所学有关相应知识的能力,更好地巩固《C++程序语言设计》和《高级程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,体验理论与实践相结合的过程。

第二章功能需求分析 功能描述 本次设计的计算器在功能上大致与Windows系统自带的计算器程序相似,对于所设计的科学计算器,其功能大致为可以进行加(+)、减(-)、乘(*)、除(/)、简单算术计算。由于接触QT时间还不太久,所以目前只能简单地实现这些功能,相信随着以后逐步的了解,本程序将实现更多的功能。 第三章开发工具简介 QT简介 由于本次设计的小程序是用QT Creator所设计的,所以我觉得有必要先介绍下QT开发工具的背景。 Qt是一个1991年由奇趣科技开发的跨平台C++图形界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,并且允许组件编程。 QT所具有的优势是:优良的跨平台特性,Qt支持下列操作系统: Microsoft Windows 95/98,Microsoft Windows NT,Linux,Solaris,SunOS,HP-UX,Digital UNIX (OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX 等等。 面向对象:Qt 的良好封装机制使得Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt 提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。 丰富的API:Qt 包括多达250 个以上的C++ 类,还提供基于模板的collections,serialization,file,I/O device,directory management,date/time 类。甚至还包括正则表达式的处理功能。支持2D/3D 图形渲染,支持OpenGL大量的开发文档。 第四章详细设计过程 开发环境的搭建 本次所用系统环境为Ubuntu LTS,内核为Ubuntu搭建QT环境大致过程为: 1.安装g++,ubuntu默认是不带g++的,如果不安装的话,后面是无法进行桌面版的qt应用程序进行编译的,在终端中执行以下命令: sudo apt-get install g++ 2. Qt桌面版的安装 3.安装arm-linux-gcc (配置环境变量gedit /.bashrc 添加路径 export PATH=$PATH:/opt/FriendlyARM/toolschain/) 使配置文件立即生效:source /.bashrc或者注销logout 最好重启

QT中的网络编程实例

QT中的网络编程实例 Qclient.h /**************************************************************************** ** $Id: /sample/10/qclient.h 2.3.2 edited 2004-10-12 $ ** ** Copyright (C) 2004-2005 OURSELEC AS. All rights reserved. ** https://www.wendangku.net/doc/331565165.html, ** This file is part of an example program for Qt. This example ** program may be used, distributed and modified without limitation. ** *****************************************************************************/ #ifndef QCLIENT_H #define QCLIENT_H #include #include #include #include #include #include #include #include #include class QClient : public QWidget { Q_OBJECT public: QClient(QWidget *parent = 0, const char *name = 0); private slots: void closeConnection(); void sendToServer(); void connectToServer(); void socketReadyRead(); void socketConnected(); void socketConnectionClosed(); void socketClosed(); void socketError(int); private: QSocket *socket; QTextView *infoText;

QT应用程序设计

南昌航空大学实验报告 二00 一四年五月十四日 课程名称:嵌入式系统设计及应用实验名称:QT应用程序设计 班级:姓名:同组人: 指导教师评定:签名: 一、实验内容 1. 阅读QT主窗口程序helloworld.cpp,然后编译并运行。 2.在helloworld.cpp程序中增加一个名为“hello”的按钮。 3. 编写一个登陆对话窗程序 二、实验步骤 (一)helloword程序 1.我们用File->New菜单来新建工程。 2这里我们选择Qt4 Gui Application。 3下面输入工程名和要保存到的文件夹路径。我们这里的工程名为helloworld。 4这时软件自动添加基本的头文件,因为这个程序我们不需要其他的功能,所以直接点击Next。 5.我们将base class选为QDialog对话框类。然后点击Next。 6点击Finish,完成工程的建立。 7我们可以看见工程中的所有文件都出现在列表中了。我们可以直接按下下面的绿色的run按钮或者按下Ctrl+R快捷键运行程序。 (二)登陆对话框程序 1.先新建Qt4 Gui Application工程,工程名为mainWidget,选用QWidget作为 Base class,这样便建立了主窗口 2.然后新建一个Qt Designer Form Class类,类名为loginDlg,选用Dialog without Buttons,将其加入上面的工程中 3.在logindlg.ui中设计下面的界面:行输入框为Line Edit。其中用户名后面的输入 框在属性中设置其object Name为usrLineEdit,密码后面的输入框为pwdLineEdit,登录按钮为loginBtn,退出按钮为exitBtn。 4.将exitBtn的单击后效果设为退出程序,关联如下: 5.右击登录按钮选择go to slot,再选择clicked(),然后进入其单击事件的槽函数,写 入一句 void loginDlg::on_loginBtn_clicked()

实验11 QT程序设计及烧写

实验5 QT程序设计及烧写 ●实验目的: 1、掌握QT简单程序的设计方法及步骤。 2、掌握QT资源文件的添加 3、掌握QT多界面的跳转。 4、掌握QT程序的移植方法。 ●实验要求: 理解QT编程的一般方法和程序移植的思路。 ●实验器材: 软件: 1. 安装了Ubunt的vmware虚拟机 2. GEC210 开发板 硬件:PC机一台 ●实验题目及操作步骤: 1、不使用集成开发工具,用纯代码编写第一个QT程序hello, 实现运行效果如下图, 注意:在Linux环境的编译步骤,可以使用qmake –v命令查看QT版本。 qmake –project

qmake make ./hello 2、学习信号和槽的机制,实现单机按钮退出界面。效果如下图所示: 参考代码如下: #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); QPushButton *button = new QPushButton("Quit"); QObject::connect(button,SIGNAL(clicked()),&a,SLOT(q uit())); button->show(); return a.exec(); }

3、用集成开发环境实现上题功能。 4、如下图界面上有一个label,两pushbutton。当点击一个pushbutton时,Label显示字符1 点击另一个pushbutton时,label显示字符2 4、添加资源练习,实验效果如下图所示。 设计过程如下所示。

QT编程语句

Main.cpp #include #include #include "openFile.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); openFile ui; ui.show(); return app.exec(); } Openfile.cpp #include #include"openFile.h" QDir dir; openFile::openFile(QWidget *parent):QDialog(parent) { setupUi(this); } void openFile::on_okButton_clicked() { QFile file; QString str=FileName->text(); file.setFileName(str); file.open(QIODevice::ReadOnly); QTextStream out(&file); text->setPlainText(out.readAll()); file.close(); } void openFile::on_saveButton_clicked() { QFile file; QString str=FileName->text(); file.setFileName(str); file.open(QIODevice::WriteOnly);

QTextStream in(&file); in<toPlainText(); } void openFile::on_openButton_clicked() { QString str = QFileDialog::getOpenFileName(this); FileName->setText(str); } void openFile::on_listButton_clicked() { //QDir dir; QString path=DirName->text(); dir.setPath(path); QStringList files; files=dir.entryList(QStringList("*"),QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot); for (int i = 0; i < files.size(); i++) { //text->append(files[i]); QTableWidgetItem *item = new QTableWidgetItem(files[i]); int row = table1->rowCount(); table1->insertRow(row); table1->setItem(row,0,item); } } void openFile::on_table1_cellClicked(int row ,int column) { QTableWidgetItem *item = table1->item(row , column ); QString apath=dir.absoluteFilePath(item->text()); FileName->setText(apath); } Openfile.h #ifndef OPENFILE_H #define OPENFILE_H #include #include #include #include #include

基于QT的音乐播放器编程

1.新建工程,基类选择Qwidget。双击打开界面文件,在界面文件中创建label 显示时间、若干个toolbutton按钮和一个listWidget列表显示歌曲列表。点击“文件”->“新建”创建QT资源文件,在工程目录下建文件夹“images”,双击QT资源文件添加前缀“/”,再添加图标文件。 2.单击上一曲按钮,在属性栏设置标题tooltip和图标icon: 界面如下: 3.右键几个按钮,转入槽函数,列表和歌词的信号选择clicked(bool)。 4.工程文件中添加语句 QT+=phonon 对音乐播放器进行设计,主要用到模块中的MediaObject (管理媒体源)AudioOutput (连接物理设备)SeekSlider(实现进度条)QList (实现播放

列表) 大概地说,Phonon 的工作机制是使用MediaObject 来管理MediaSource 即源文件,通过Path 连接到AudioOutput ,最后是由AudioOutput 将数据发送到相关物理设备。 5.修改widget.h头文件 在widget.h头文件添加语句: #include 在头文件声明变量: private: Phonon::MediaObject*audio;//管理媒体源 Phonon::MediaObject*musicInformationMediaObject;// Phonon::VideoWidget*videoWidget;// Phonon::AudioOutput*audioOutput;//连接物理设备 Phonon::SeekSlider*seekSlider;//实现进度条 Phonon::VolumeSlider*volumeSlider;//音量调节 QListsourceList;//播放列表 QTimer*timer; QIcon*iconplay; QIcon*iconpause; QAction*play; QAction*stop; QAction*open; QAction*sound; QAction*exit; QAction*remove; 头文件声明函数: public: void creatActions();//创建动作 6.修改widget.cpp文件 构造函数添加: this->setWindowTitle(tr("音乐播放器"));//设置标题 /**初始化媒体**/ audio=new Phonon::MediaObject();//媒体对象 audio->setTickInterval(1); audioOutput=new Phonon::AudioOutput(Phonon::VideoCategory);//音频输出 Phonon::createPath(audio,audioOutput);//连接媒体对象与音频输出 musicInformationMediaObject=new Phonon::MediaObject(this);//音乐信息对象 volumeSlider=new Phonon::VolumeSlider(audioOutput,this);//音量滑动条

QT C++图形界面编程技术

通识教育课程论文 课程名称:C++图形界面编程技术_ 学院_ 专业班级 学号 姓名爱尔兰(KEN 联系方式irelandken@https://www.wendangku.net/doc/331565165.html, 任课教师LZ

论QT的信号/槽机制 ——WindowCut—一个简单实用的截图软件在图形界面编程技术,我比较喜欢QT这个框架,喜欢它的一次编写,到处编译这种方式,既高效,移植性又强,我试过在window下用Qt creator开发一个软件,然后直接将工程放到linuxubunto 11.04下,再次用Qt creator打开之前的工程,很简单地直接编译一次,一个代码也不用改,就将该软件移植到Linux下了,这一点很不错。。。 更重要的是,Qt为我们带来了全新的思想:将一个工程逻辑分解为多个组件,利用强大的信号/槽机制,竟然可使这个工程分解为相互独立,互不干扰的若干个部分。以下,我将通过介绍我的WindowCut截图软件的编写过程来分析这种思想。 界面:

截图过程:

截图后的效果: 思想: 这个软件由1:主窗口mainWindow,2:全屏截图器FullEditFEdit(就是半透明的全屏的组件)和 3:截图查看器PicSeePSee组成,这3部分都是互相独立的类,在类的定义中,类与类之间无直接的函数调用,这些组件定义了 若干个signal/slot,而这3个类的实例是通过 signal/slot机制偶合在一 起的。 mainWindow上的Cut按键被按下后,mainWindow就隐藏,并发出一个StartCut()的信号,表示“开始截图”。。然后FEdit接收到StartCut() 信号后,它就初始化,并记录下此时刻的屏幕背景,最后全屏显示半透明的背景。。。然PSee接收这个信号后,它就隐藏起来。。 当用户在全屏截图器FEdit的全屏半透明背景上选定好区域后,FullEdit 就会隐藏窗口并发出FinishCut“截图完成”的信号(信号中包含了截图的地址),然后截图查看器PSee接收到FinishCut信号及其中的截图的地址后,就

在VS2010中使用Qt编程

在VS2010中使用Qt编程 一、安装所需软件 1. 下载安装VS2010,以及SP1补丁包; 2. 下载qt-win-opensource-4.8.2-vs2010.exe,并安装。这里我们假设安装在C:\Qt\4.8.2下; (https://www.wendangku.net/doc/331565165.html,/downloads/windows-cpp-vs2010) 3. 下载qt-vs-addin-1.1.11-opensource.exe,并安装。 (https://www.wendangku.net/doc/331565165.html,/downloads/visual-studio-add-in) 这三个软件安装好后,在VS的菜单界面上就会出现"QT"选项了。 二、环境配置 1. 用VS新建一个win32控制台应用程序,我们假设工程名为:Hello。 2. 选择工具->选项->项目和解决方案->VC++目录。 (1) 选择“可执行文件”,在里面添加:C:\Qt\4.8.2\bin; (2) 选择“包含文件”,在里面添加: C:\Qt\4.8.2\include;C:\Qt\4.8.2\include\Qt;C:\Qt\4.8.2\include\QtCore;C:\Qt\ 4.8.2\include\QtGui (3) 选择“库文件”,在里面添加:C:\Qt\4.8.2\lib; 三、开始编程(这里举一个简单的例子) 1. 选择菜单上的“QT”选项- >“Launch Designer” ,启动designer: 放入一个“label”,内容写为:helloQT。然后保存为Hello.ui,再将它添加到源文件中。 右击“Hello.ui”->“属性”->“项类型”->“自定义生成工具”: 命令行:uic.exe Hello.ui -o HelloUi.h 输出:HelloUi.h 附加依赖项:uic.exe; Hello.ui 然后,点击“确定”。这时再右击“Hello.ui”,选择“编译”,则会生成HelloUi.h。将它添加到工程中。

QT编程入门

QT编程入门 看完这段Qt入门介绍,还是什么都没看明白,只确定一点Qt中所有类都是以Q开头的,而且 每个单词之间没有间隔,感觉与Symbian有完全不同的框架跟编程。。。 Qt是一个跨平台的图形用户界面(GUI)的集成开发工具。作为一篇初学者的入门学习指导,这里我们将通过一个记事本的小程序来向大家介绍Qt的一些基础知识。此后你可以参考我们的技术概述和API文档来进行开发。 Hello Notepad 在第一个例子中,我们创建了一个很简单的窗口,窗口中显示了“This is a QTextEdit”,这可以说是一个最简单的拥有用户图形界面的Qt程序了。 以下是代码: #include #include intmain(intargv,char**args) { QApplicationapp(argv, args); QTextEdittextEdit; textEdit.show(); returnapp.exec(); } 1 2 3 4

5 6 7 8 9 10 11 12 #include #include intmain(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)等等。一个widget也可以作为其他的widget的

Qt编程设计规范

Qt编程设计规范 (1) 一.概述 (1) 二.头文件 (1) 1) #define保护 (2) 2)头文件依赖 (2) 3)头文件包含次序 (2) 三.命名约定 (2) 1) 通用命名约定 (2) 2)文件命名 (3) 3)类命名 (3) 4)变量命名 (3) 5)常量命名 (4) 6)函数命名 (4) 7)枚举命名 (5) 8)命名空间 (5) 9)结构体命名 (6) 四.代码注释 (6) 1)注释风格 (6) 2)类注释 (7) 3)函数注释 (7) 4)变量注释 (8) 5)实现注释 (8) 6) TODO注释 (9) 五.代码排版 (10) 1)行长度 (10) 2)缩进 (10) 3)空行 (11) 4)大括号 (11) 5)圆括号 (13) 六.重要原则 (13) Qt编程设计规范 一.概述 良好的编程规范可以大幅提高一个程序的可读性、可理解性和可维护性。本规范参考Effective C++中文版、Google C++编码规范及Qt编码风格。 二.头文件

1) #define保护 所有头文件都应该使用#define防止头文件被多重包含,命名格式为:__H,例如: #ifndef MAP_MAINWINDOW_H #define MAP_MAINWINDOW_H …… #endif //MAP_MAINWINDOW_H 2)头文件依赖 使用前声明,尽量减少.h文件中#include的数量。 3)头文件包含次序 将包含次序标准化可增强可读性,次序如下:C库头文件、C++库头文件、其他库的头文件、项目内的头文件。 三.命名约定 1) 通用命名约定 避免使用缩写。

相关文档