QT开发实例笔记1:QT概述
学习资料下载地址:https://pan.baidu.com/share/init?surl=fo6gh1FhpcxY-loNHIJ13w 密码:osfk
1.1.什么是QT:略
1.2 QT的安装: 略
1.3 QT5开发步骤及实例
本实例要实现的功能是,当用户输入一个圆的半径后,可以显示计算后的圆
的面积值。运行效果如图所示。
1.界面设计
步骤如下。
(1)单击运行Qt Creator,进入欢迎界面如图1.2所示。单击“文件”→“新建文件或项目…”命令,创建一个新的工程,如图1.6所示。
(2)单击选择“Qt Gui 应用”,单击“选择”按钮,进入下一步。这里因为需要建立一个Gui项目,所以选择“Qt Gui 应用”,如图1.7所示。
(3)选择保存项目的路径并定义自己项目的名字。项目命名没有大小写要求,依据个人习惯命名即可。这里将项目命名为Dialog,保存路径为H:\5.QT\QT_DOME\3.rounte,如图1.8所示。单击“下一步”按钮进入下一步骤。
(4)弹出“选择构建套件”界面,系统默认已指定C++的编译器和调试器,如图1.9所示,直接单击“下一步”按钮进入下一步骤即可。
(5)根据实际需要,选择一个“基类”。这里选择QDialog对话框类作为基类,这时“类名”、“头文件”、“源文件”及“界面文件”都出现默认的文件名。默认选中“创建界面”复选框,表示需要采用自带的界面设计器来设计界面,否则需要利用代码完成界面的设计,如图1.10所示。
(6)单击“完成”按钮完成创建,相应的文件自动加载到文件列表中,如图1.11所示。
单击中间灰色一列工具栏中的过滤符号( )后,弹出一个下拉列表,使两个项目都是被勾选后处于选中状态(默认选项“简化树形视图”没选中,“隐藏生成的文件”处于选中状态),如图1.12(a)所示。若单击其中“简化树形视图”项取消选中状态,此时文件列表中的文件自动分类显示,如图1.12(b)所示。
(7)双击dialog.ui,进入界面设计器Qt Designer编辑状态,开始进行设计器(Qt Designer)编程。拖曳控件容器栏的滑动条,在最后的Display Widgets容器栏(如图1.13所示)中找到Label标签控件,拖曳三个此控件到中间的编辑框中。
在Input Widgets容器栏(如图1.14所示)中找到LineEd文本控件,拖曳此控件到中间的编辑框中,用于输入半径值;
在Buttons容器栏(如图1.15所示)中找到PushButton按钮控件,拖曳此控件到中间的编辑框中,用于提交响应单击事件。
调整各控件的位置,单击编辑框的空白处使编辑框处于被选中状态,拖曳右下角的小方框,调整整个框架的大小,直至调整到适当大小为止,调整后的布局如图1.16所示。
下面将修改拖曳到编辑框中的各控件的属性,如图1.17所示,各控件属性见
表1.1。
修改控件Text值的方法有如下两种。
直接双击控件本身即可修改。
在Qt Designer设计器的属性栏中修改,如修改表示半径的Label标签,如图1.18所示。
最后,修改areaLabel_2的“frameShape”为Panel;“frameShadow”为Sunken,如图1.19所示。最终效果如图1.20所示。
下面单击左下角的运行按钮或者使用组合键【Ctrl+R】运行程序,这时系统提示是否保存,单击“保存所有”按钮,如图1.21所示。
2.编写相应的计算圆面积代码
首先简单认识一下Qt编程环境。找到文件列表中自动添加的main.cpp文件,如图1.12所示。每个工程都有一个执行的入口函数,此文件中的main()函数就是此工程的入口。下面详细介绍一下main()函数的相关内容:
#include "dialog.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog w;
w.show();
return a.exec();
}
方式1:在LineEdit文本框内输入半径值,然后单击“计算”按钮,则在
areaLabel_2中显示对应的圆面积。编写代码步骤如下。
(1)在“计算”按钮上单击鼠标右键,在弹出的下拉菜单中选择“转到
槽…”命令,如图1.22所示。在弹出的对话框中选择“clicked()”信号,如图
1.23所示。
(2)进入dialog.cpp文件中按钮单击事件的槽函数on_countBtn_clicked()。信
号与槽连接的具体说明参照本书后面提供的知识点链接部分。在此函数中添加如下
代码:
void Dialog:: on_countBtn_clicked()
{
bool ok;
QString tempStr;
QString valueStr=ui->radiusLineEdit->text();
int valueInt=valueStr.toInt(&ok);
double area=valueIntvalueIntPI;//计算圆面积
ui->areaLabel_2->setText(tempStr.setNum(area));
}
(3)在此文件开始处添加以下语句:
const static double PI=3.1416;
……