界面编程之QT的基本介绍与使用20180722
/*******************************************************************************************/
一、qt介绍
Qt是一个跨平台的C++图形用户界面应用程序框架。它也是目前流行的Linux桌面环境KDE的基础
Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持
支持的平台
Windows – XP、Vista、Win7、Win8、Win2008、Win10
Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台
Macintosh – Mac OS X
Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE
控件,部件,构件指的都是一个东西,只是叫法不同
信号和槽(信号的处理函数)
/*******************************************************************************************/
二、qt优点
qt最大的优点就是跨平台,(只要装了qt),无论在win,linux,android,ios都可以运行。
qt的学习都是调用一些封装好的api
查看api可以使用 qt帮助文档
/*******************************************************************************************/
三、qt应用程序框架
1.创建QT项目
qt项目路径不要有中文,项目名称也不要有中文
刚开始 创建界面 那个不要勾选,后面需要用到ui界面设计的时候才勾选。
同时,注意:
QMainWindow pc上用的,也就是带菜单栏的那种界面
QWidget 各种控件的基类,用的最多的
QDialog 对话框
编译并运行的快捷键 ctrl+r
2.项目创建后,自动生成QApplication应用程序类的说明
//QApplication应用程序类
//Qt头文件没有.h
//头文件和类名一样,并且基本都是Q开头,并且跟着的字母大写
#include <QApplication>
int main(int argc, char *argv[])
{
//有且只有一个应用程序类的对象
QApplication a(argc, argv);
//自己的具体业务代码 begin
//MyWidget继承于QWidget, QWidget是一个窗口(控件)基类
//所以MyWidget也是窗口类
//w就是一个窗口(对象)
MyWidget w;
//窗口创建默认是隐藏,需要人为显示,没有show就不会显示
w.show();
//自己的具体业务代码 end
//让程序一直执行,等待用户操作
//等待事件的发生
a.exec();
return 0;
}
class MyWidget中:
//Q_OBJECT //这是一个宏,信号与槽的时候需要,后面还会讲,//没有这种需要的时候可以不要,对于第一个测试程序来说就不需要了
/*******************************************************************************************/
四、项目文件(.pro文件)
每个应用程序都会对应一个.pro的项目文件,是自动生成的,.pro文件中:
#这个表示模块,这个是头文件需要的,也就是添加了头文件还不够,还要在这里添加头文件对应的模块。即头文件需要从模块中查找,因为头文件按模块分类了
#头文件对应模块的查找办法:头文件对应类名上按f1跳到对应的帮助文档,找到qmake:后面对应的就是需要加的内容
#见图1,qt具体有哪些模块见图2 其中Qt Webkit 是浏览器引擎 Qt Mulitmedia * 是多媒体,qt core qt gui是基本模块写不写都一样:


QT += core gui
#高于4版本,添加 QT += widgets ,//为了兼容Qt4,如果是qt5直接QT += widgets即可,
#widgets是最核心最基本的,一般即使自己来创建个空项目(全部空的),.pro是空的,全部自己写也要包含这个
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#应用程序的名字,也是窗口左上角显示的名字
TARGET = mike
#指定makefile的类型, 比如app,表示通过makefile生成一个可执行程序。如果是lib,则生成的是库
TEMPLATE = app
#源文件 .cpp文件
SOURCES += main.cpp\
mywidget.cpp
#头文件 .h文件
HEADERS += mywidget.h
/*******************************************************************************************/
五、第一个qt程序
具体见《HelloQt》,这个是创建的空的项目,然后自己一步步添加的项目,具体如何创建空项目见图3:

main.c文件:
#include <QApplication>
#include <QWidget> //窗口控件基类
#include <QPushButton> int main(int argc, char **argv)
{
QApplication app(argc, argv); QWidget w;
w.setWindowTitle(QString("主要看气质")); //设置标题 /*如果不指定父对象,对象和对象(窗口和窗口)没有关系,独立
* a指定b为它的父对象,a放在b的上面
* 指定父对象,有2种方式:
* 1)setParent
* 2)通过构造函数传参
* 指定父对象,只需要父对象显示,上面的子对象自动显示
*/ QPushButton b;
b.setText("^_^"); //给按钮设置内容
b.setParent(&w); //指定父对象
b.move(, ); //移动坐标 QPushButton b1(&w); //通过构造函数传参
b1.setText("abc"); w.show(); app.exec();
return ;
}
main.cpp
其中,
QWidget w;
w.setWindowTitle(QString("主要看气质")); //设置标题
界面编程之QT的基本介绍与使用20180722的更多相关文章
- 界面编程之QT窗口系统20180726
/*******************************************************************************************/ 一.坐标系统 ...
- 界面编程之QT的信号与槽20180725
/*******************************************************************************************/ 一.指定父对 ...
- 界面编程之QT的数据库操作20180801
/*******************************************************************************************/ 一.数据库连 ...
- 界面编程之QT的线程20180731
/*******************************************************************************************/ 一.为什么需 ...
- 界面编程之QT的Socket通信20180730
/*******************************************************************************************/ 一.linu ...
- 界面编程之QT的文件操作20180729
/*******************************************************************************************/ 一.QT文件 ...
- 界面编程之QT绘图和绘图设备20180728
/*******************************************************************************************/ 一.绘图 整 ...
- 界面编程之QT的事件20180727
/*******************************************************************************************/ 一.事件 1 ...
- QT核心编程之Qt线程 (c)
QT核心编程之Qt线程是本节要介绍的内容,QT核心编程我们要分几个部分来介绍,想参考更多内容,请看末尾的编辑推荐进行详细阅读,先来看本篇内容. Qt对线程提供了支持,它引入了一些基本与平台无关的线程类 ...
随机推荐
- 20155234 昝昕明《基于ARM实验箱的国密算法应用》课程设计个人报告
20155234 昝昕明<基于ARM实验箱的国密算法应用>课程设计个人报告 个人贡献 参与课设题目讨论及完成全过程: 资料收集: SM1算法及和ARM之间通信 负责串口代码调试: 协调完成 ...
- C++ 字符串, 数字 相互转化
1: strL.Format("%x", 12); //将数字12转换成,16进制字符(C),存于strL 2: strH.Format("%x",12); / ...
- EAS_BI(扩展报表)
case when 的使用 1. 扩展报表,一张收费单据中,下面分为分录 问题描述: 收费单中有一个分录用于记录检测的项目名称以及标准费用.收费单有自己的主键,分录中的外键即是收费单的主键,然后分录表 ...
- Hadoop日记Day9---HDFS的java访问接口
一.搭建Hadoop 开发环境 我们在工作中写完的各种代码是在服务器中运行的,HDFS 的操作代码也不例外.在开发阶段,我们使用windows 下的eclipse 作为开发环境,访问运行在虚拟机中的H ...
- 【第四课】Linux的基础命令使用
目录 一.passwd重置密码 二.单用户模式 三.救援模式 四.设置SElinux 五.Linux的常用基础命令详解 5.1.mkdir命令 5.2.ls命令 5.3.cd命令 5.4.chmod命 ...
- 大话Java中的哈希(hash)结构(一)
o( ̄▽ ̄)d 小伙伴们在上网或者搞程序设计的时候,总是会听到关于“哈希(hash)”的一些东西.比如哈希算法.哈希表等等的名词,那么什么是hash呢? 一.相关概念 1.hash算法:一类特殊的算法 ...
- linux AB web 性能测试工具
ab(选项)(参数) 选项 -A:指定连接服务器的基本的认证凭据: -c:指定一次向服务器发出请求数: -C:添加cookie: -g:将测试结果输出为“gnuolot”文件: -h:显示帮助信息: ...
- Nginx+IIS分布式部署和负载均衡
1.IIS中部署2个网站 创建2个网站,端口分别为9001.9002 2.下载Nginx 可以进入Nginx官网进行下载,官网地址: http://nginx.org/,需要下载windows版的 3 ...
- App云测试服务对比
前言: 我们都知道在测试移动app时最耗时的是在各种测试设备进行测试, 因为不论是安卓还是iOS都已经碎片化了.而云测试看似是解决这一问题的有效途径.因此选择哪种云测试平台来协助测试人员进行各种测试就 ...
- eclipse实现热部署和热启动
不用每次修改一个class文件就要重启tomcat这么麻烦: http://blog.csdn.net/fuzhongyu2/article/details/52073050