Qt解析.docx
- 文档编号:9394994
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:17
- 大小:37.65KB
Qt解析.docx
《Qt解析.docx》由会员分享,可在线阅读,更多相关《Qt解析.docx(17页珍藏版)》请在冰豆网上搜索。
Qt解析
1什么是QtFramework?
如何下载和安装Qt库及其开发工具?
QTFramework是cpp的标准库一个总的更换。
从Qt的官方网站SDK中包括最新完整的Qt4.6.3库,QtCreator2.0以及QtDesigner等开发工具。
下载后双击qt-sdk-win-opensource-2010.04.exe进行安装,安装过程中可以自定义安装路径,但路径中不能有中文字符!
建议直接使用默认的安装路径即可。
安装老外的软件,一个基本原则就是,不要使用路径中含有‘A’-‘Z’,‘a’-‘z’,‘0’-‘9’,'.','-','_'以外字符的路径名称,这样可以避免很多莫名其妙不可理喻的问题;安装完成后,会在桌面上创建QtCreator到快捷方式,双击该快捷方式就可以进入到Qt到可视化开发环境下。
通常在QtCreatorIDE中,不需要进行额外的配置即可正常编写、编译、调试、运行程序,但需要注意:
如果系统里安装了VC等开发工具,这些工具可能会在系统的环境变量中添加Include和Libs等变量以方便在命令行下用nmake之类的工具编译、生成程序,但这些设置与QtCreatorIDE是有冲突的。
如果不需要进行命令行的操作,可以将Include和Libs删除,这样QtCreatorIDE环境下编译Qt程序的时候就会使用刚刚安装的QtSDK中的头文件和库。
2什么是QtCreator?
它有什么作用?
生成含有主界面简单工程的主要方法有哪些?
1)QtCreator是跨平台的QtIDE,QtCreator是Qt被Nokia收购后推出的一款新的轻量级集成开发环境(IDE)。
此IDE能够跨平台运行,它的界面简洁大方、操作便捷顺畅,支持的系统包括Linux(32位及64位)、MacOSX以及Windows。
2)QtCreator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及轻易的完成开发任务.QtCreator包括项目生成向导、高级的C++代码编辑器、浏览文件及类的工具、集成了QtDesigner、QtAssistant、QtLinguist、图形化的GDB调试前端,集成qmake构建工具等。
3)生成含有主界面简单工程的主要方法有哪些
A.使用VB直接设计自己所需的主界面,进而生成简单的工程;
B.使用QtCreator生成含有主界面简单工程;
3请用graphics库初始化绘图环境并绘制★☆形图案。
答案见附件
4请简单介绍6-10个QtCreator中的快捷键及其作用。
1)F1使用方法:
选中某一类或函数,按下F1,出现帮助文档
2)F2使用方法:
选中某一类或函数,按下F2,迅速定位到该类或函数声明的地方或被调用的地方
3)F3作用:
查找下一个你选的内容
4)F4使用方法:
在*.cpp和*.h之间切换
5)F5的作用:
调试
6)F9的作用:
切换断点
7)Ctrl+鼠标滚轮的使用方法:
按住Ctrl,使鼠标滚轮旋转,可调整字体的大小
8)Ctrl+F使用方法:
(作用:
查找当前文档)选中你想选的内容之后,按下Ctrl+F,会列出所有和你选的内容一样的语句
9)Ctrl+1,2,3,4,5,6使用介绍:
在Welcome,Edit,Debug,Projects,Help,Output几种模式之间切换
10)Shift+F3作用:
查找上一个你选的内容
11)Ctrl+Shift+F作用:
弹出查找对话框
12)Ctrl+M的作用:
书签之间切换
13)Shift+F5的作用:
停止调试
14)F10的作用:
单步跳过
15)F11的作用:
单步进入
16)Shift+F11的作用:
单步跳出
17)Ctrl+Shift+F5的作用:
重启调试
18)Alt+0的作用:
隐藏或显示边栏
19)Alt+1的作用:
切换至生成窗口
20)Alt+2的作用:
切换至搜索结果窗口
21)Alt+3的作用:
切换至应用输出窗口
22)Alt+4的作用:
切换至编译输出窗口
5单击主窗口菜单,弹出自定义窗口界面。
请简介QtCreator中的做法。
6请为QtCreator中的主界面添加动作响应、添加新的信号和槽。
7请以查询Qt库中某个类为例,介绍QtAssistant的用法。
库
描述
QtCore
核心非GUI功能
QtGui
核心GUI功能
QtNetwork
网络模块
QtOpenGL
OpenGL模块
QtSql
SQL模块
QtSvg
SVG透视图类
QtXml
XML模块
Qt3Support
支持Qt3的类
QAxContainer
ActiveQt客户端的扩充
QAxServer
ActiveQt服务器段的扩充
QtAssistant
Qt助手的语言类
QtDesigner
Qt设计器的扩展类
QtUiTools
生成动态GUI类
QtTest
单元测试工具类
8请以自己的主界面为例,介绍QtLinguist在自己应用程序国际化过程中的应用。
QT国际化步骤:
1)编写源代码
2)在pro中添加TRANSLATIONS+*.ts,有多少中语言就添加多少个ts文件。
3)运行lupdate*.pro生成ts文件。
lupdate会根据源代码中的内容提取出待翻译的字段,然后生成ts文件,ts文件是xml格式的。
4)用qtlinguist打开ts文件,并翻译相应字段。
5)运行lrelease*.pro生成qm文件。
lrelease会根据ts文件生成二进制的qm翻译文件。
6)使用QTranslator加载qm文件。
7)为QApplication安装translator。
9Qt开发工具uic、rcc、moc和qmake有何作用?
(1)uic的全称是UserInterfaceCompilerfortheQtGUItoolkit,顾名思义,它就是.ui文件编译器,也是Qt提供的工具之一。
它的主要功用可以用一句话来概括,就是读取由QtDesigner制作的用户界面文件(即.ui文件),并生成相对应的C++头文件。
该头文件的形式是Ui_YourFormName.h。
(2)rcc是Qt自带的一个工具。
这是Qt的一个资源编译器,其编译对象是qrc文件,而生成rcc二进制资源文件。
(3)moc是QT的预编译器,用来处理代码中的slot,signal,emit,Q_OBJECT等。
moc文件是对应的处理代码,也就是Q_OBJECT宏的实现部分,与其文件在同一目录下。
(4)qmake是一个协助简化跨平台进行专案开发的构建过程的工具程式,Qt附带的工具之一。
qmake能够自动生成Makefile、MicrosoftVisualStudio专案文件和xcode专案文件。
不管源代码是否是用Qt写的,都能使用qmake,因此qmake能用于很多软件的构建过程。
10试用QDesigner设计一个记事本程序的主界面和计算器的主界面。
11C语言#include
简述添加第三方库过程。
1)#include
2)如果想使用其他的库文件,加入以下内容:
QT+=networkopenglsqlqt3support
12请用graphics库在终端窗口中绘制基本直线、圆弧、椭圆和长方体
//用graphics库在终端窗口中绘制基本直线、圆弧、椭圆和长方体
#include
#include
voidmain()
{
initgraph(640,480);//初始化图形窗口
circle(60,60,40);//绘制圆!
circle(intx,inty,int半径)
line(20,120,90,150);//绘制直线!
line(xmin,ymin,xmax,ymax)
arc(100,250,30,150,60);//绘制圆弧!
arc(intx,inty,int起始角,int中止角,int半径);
ellipse(100,320,0,360,60,40);//绘制椭圆!
ellipse(x,y,起始角,中止角,横轴,纵轴)
rectangle(20,400,70,440);//绘制长方体!
用矩形代替画直线!
rectangle(x1,y1,x2,y2)
getch();//按任意键继续
closegraph();//关闭图形界面
}
13什么是SQLite?
如何初始化SQLite?
请创建调心滚子轴承及其如下表格:
轴承名称
新型号
旧型号
内径
外径
厚度
参考型号
FAG21304E·TVPB轴承
21304CC
53304
20
52
15
21304E·TVPB
SKF21304CC轴承
21304CC
53304
20
52
15
21304CC
SKF21304CCK轴承
21304CCK
53304
20
52
15
21304CCK
NSK21304CDKH304X轴承
21304CCK+H304
253303
17
52
15
21304CDKH304X
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
14什么是数据结构?
什么是栈、堆、二叉树?
请举例说明。
1)数据结构是指同一数据元素类中各数据元素之间存在的关系。
2)栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。
它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
3)堆:
n个元素的序列{k1,k2,ki,…,kn}当且仅当满足下关系时,称之为堆。
"ki<=k2i,ki<=k2i+1;或ki>=k2i,ki>=k2i+1.(i=1,2,…,[n/2])"。
若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二叉树,则堆的含义表明,完全二叉树中所有非终端结点的值均不大于(或不小于)其左、右孩子结点的值。
4)二叉树是每个结点最多有两个子树的有序树。
通常子树的根被称作“左子树”(leftsubtree)和“右子树”(rightsubtree)。
二叉树常被用作二叉查找树和二叉堆或是二叉排序树。
二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。
二叉树不是树的特殊情形。
在图论中,二叉树是一个连通的无环图,并且每一个顶点的度不大于3。
15已知公式B=4T/(dLh),等号后各因子可分别从不同表格中查得,编写程序实现之。
16实现一元插值函数的程序。
#include
#include
typedefstructdata
{
floatx;
floaty;
}Data;
Datad[20];
floatlagrange(floatx,intcount)
{
floaty=0.0;
for(intk=0;k { floatp=1.0; for(intj=0;j { if(k==j) continue; p=p*(x-d[j].x)/(d[k].x-d[j].x); } y=y+p*d[k].y; } returny; } voidmain() { floatx,y; intcount,choice,i; cout<<"请选择1.线形插值2.抛物插值: "< cin>>choice; if(choice==1) { cout<<"你选择了线形插值: "< for(i=0;i<2;i++) { cout<<"请输入第"< "; cin>>d[i].x; d[i].y=float(sin(d[i].x)); cout<<"第"< "< } cout<<"请输入x的值: "; cin>>x; y=lagrange(x,2); cout< } elseif(choice==2) { cout<<"你选择了抛物插值: "< while (1) { cout<<"请输入x[i],y[i]的组数,不超过20组: "; cin>>count; if(count<=20) break; } for(inti=0;i { cout<<"请输入第"< "; cin>>d[i].x; d[i].y=float(sin(d[i].x)); cout<<"第"< "< } cout<<"请输入x的值: "; cin>>x; y=lagrange(x,count); cout< } else { cout<<"输入有误"< } } 17什么是最小二乘法多项式拟合? 试举例其应用。 1)对给定数据点{(Xi,Yi)}(i=0,1,…,m),在取定的函数类Φ中,求p(x)∈Φ,使误差的平方和E^2最小,E^2=∑[p(Xi)-Yi]^2。 从几何意义上讲,就是寻求与给定点{(Xi,Yi)}(i=0,1,…,m)的距离平方和为最小的曲线y=p(x)。 函数p(x)称为拟合函数或最小二乘解,求拟合函数p(x)的方法称为曲线拟合的最小二乘法。 当拟合曲线的表达式可以用多项式表示时就成为最小二乘法的多项式拟合。 2)对下面的七个点用二项式拟合! 点号 1 2 3 4 5 6 7 X值 -3 -2 -1 0 1 2 3 Y值 4 2 3 0 -1 -2 -5 #include #include #include #include #defineN7//N个节点 #defineM2//M次拟合 #defineK2*M voidzhuyuan(intk,intn,floata[M+1][M+2]) { intt,i,j; floatx,y; x=fabs(a[k][k]);t=k; for(i=k+1;i<=n;i++) if(fabs(a[i][k])>x) { x=fabs(a[i][k]);t=i; } for(j=k;j<=n+1;j++) { y=a[k][j];a[k][j]=a[t][j];a[t][j]=y; } } voidxiaoyuan(intn,floata[M+1][M+2]) { intk,i,j; for(i=0;i { zhuyuan(i,n,a); for(j=i+1;j<=n;j++) for(k=i+1;k<=n+1;k++) a[j][k]=a[j][k]-a[j][i]*a[i][k]/a[i][i]; } } voidhuidai(intn,floata[M+1][M+2],floatx[M+1]) { inti,j; x[n]=a[n][n+1]/a[n][n]; for(i=n-1;i>=0;i--) { x[i]=a[i][n+1]; for(j=i+1;j<=n;j++) x[i]=x[i]-a[i][j]*x[j]; x[i]=x[i]/a[i][i]; } } main() { floatx_y[N][2],A[N][K+1],B[N][M+1],AA[K+1],BB[M+1],a[M+1][M+2],m[M+1]; inti,j,n; printf("请输入%d个已知点: \n",N); for(i=0;i { printf("(x%dy%d): ",i,i); scanf("%f%f",&x_y[i][0],&x_y[i][1]); } for(i=0;i { A[i][0]=1; for(j=1;j<=K;j++) A[i][j]=A[i][j-1]*x_y[i][0]; for(j=0;j<=M;j++) B[i][j]=A[i][j]*x_y[i][1]; } for(j=0;j<=K;j++) for(AA[j]=0,i=0;i AA[j]+=A[i][j]; for(j=0;j<=M;j++) for(BB[j]=0,i=0;i BB[j]+=B[i][j]; for(i=0;i { a[i][M+1]=BB[i]; for(j=0;j<=M;j++) a[i][j]=AA[i+j];} n=M; printf("正规系数矩阵为: \n"); for(i=0;i<=n;i++) { for(j=0;j<=n+1;j++) printf("%5.2f",a[i][j]); printf("\n"); } xiaoyuan(n,a); huidai(n,a,m); printf("拟合曲线方程为: \ny(x)=%g",m[0]); for(i=1;i<=n;i++) { printf("+%g",m[i]); for(j=0;j { printf("*X"); } } return0; } 18简述列主元高斯消去法求解线性联立方程的程序实现过程。 过程: 1)找主元素; 2)主元素换到对角线的位置; 3)消元过程; 4)回代过程; 举例应用: #include #include usingnamespacestd; intmain() { intn,i,j,k; doublea[100][100],b[100],m; cout<<"输入未知数个数: "< cin>>n; cout<<"输入"< "< for(i=1;i<=n;i++) for(j=1;j<=n+1;j++) cin>>a[i][j]; for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) if(fabs(a[j][i])>1e-7) { m=a[i][i]/a[j][i]; for(k=i;k<=n+1;k++) { a[j][k]=a[j][k]*m-a[i][k]; } } for(i=n;i>0;i--) { b[i]=a[i][n+1]/a[i][i]; for(j=i-1;j>0;j--) { a[j][n+1]=a[j][n+1]-b[i]*a[j][i]; } } cout<<"利用该程序求解得: "< for(i=1;i<=n;i++) { cout< } system("pause"); return0; } 19线性表的存储方式有哪些? 试简述其优、缺点。 顺序存储方式: 优点: 可以随机访问数据元素; 缺点: 大小固定,不利于增删结点; 链式存储方式: 优点: 采用指针方式增减结点,非常方便只需要改变指针指向,不移动结点; 缺点: 不能进行随机访问,每个结点上增加指针域,造成额外存储空间增大; 20二维图形的变换矩阵统一表述是什么? 简述其各变量所代表的含义。 其中 可以实现图形的比例、对称、错切、旋转等基本变换; 可以实现图形的平移变换; 可以实现图形的透视变化; 可以实现图形的全比例变换。 21三维图形的变换矩阵统一表述是什么? 简述其各变量所代表的含义。 其中 产生比例、对称、错切、旋转等基本变化; 产生平移变换; 产生透视变换; 产生全比例变换。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Qt 解析