一、Qt典型成功案例:
1、Linux桌面环境;
2、WPS Office办公软件(微软的Office中国版);
3、Skype网络电话;
4、Google Earth/VLC多媒体;
5、Virtual Box虚拟机软件;
7、屏幕共享等。
二、创造第一个Qt程序及相关解释
1、点击“创建项目”/ctrl+shift+N
2、注释:QWidget是窗口,QDialog是对话框,QMainWindow是界面
即选择“Qt Widgets Application”(窗口应用);
3、项目命名:不能用中文和空格命名(会报错),可用数字、字母、下划线_;
4、cmake的做法是生成指定编译器的工程文件,而qmake完全自成体系,我们此次学习使用qmake;
5、此项命名同样需要英文命名,且header file和source file随着class name(类名)的改变而改变;
6、此项是如果生成的窗口程序需要面向不同国家语言才进行处理,而我们这不需要这种处理,即直接下一步;
7、同样选择MinGW,即支持中文环境下的编码,不会出现乱码;
8、版本控制系统主要有:SVN VSS Git;
其中SVN:(1)涉及游戏开发;
(2)具有代码合并的功能(可检测),如A代码接B代码,则A代码要输入update进行更新,不然系统无法识别会报错;
(3)报错后使用Slove---commit;
(4)若有lock————则对应unlock;
此项我们暂时忽略,直接选择“完成”;
9、已经定义了一个类;
对包含的类模板的解释:
(1)main.cpp文件:
//main.cpp
#include "mywidget.h"
#include <QApplication> //包含一个应用程序类的头文件
int main(int argc, char *argv[]) //argc是命令行变量的数量,argv[]是命令行变量的数组
{
QApplication a(argc, argv); //a为应用程序对象,在qt中,应用程序对象有且仅有一个
myWidget w; //窗口对象类->QWidget
w.show(); //窗口对象默认不会显示,必须调用show方法显示窗口
return a.exec(); //让代码阻塞运行,让应用程序对象进入消息循环,一直等待用户的操作
//相当于
//while(true)
//{
//if(点了窗口的X)
//break;
//}
}
(2)mywidegt.h头文件:
#ifndef MYWIDGET_H
#define MYWIDGET_H
//相当于VS中#pragma once
#include <QWidget> //包含头文件,QWidget窗口类
class myWidget : public QWidget
{
Q_OBJECT //为宏,允许类中信号和槽的机制,不能随意删掉,否则代码可能跑不动
public:
myWidget(QWidget *parent = nullptr); //带参默认构造函数
~myWidget(); //析构函数
};
#endif // MYWIDGET_H
(3).pro文件:
QT += core gui //core是核心,gui是图形模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
//Qt大于4.0版本,包含widget模块
CONFIG += c++17
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
mywidget.cpp
HEADERS += \
mywidget.h
//除非系统能识别操作,不然不要乱添加
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
<转载请说明出处>
欢迎提出报告的意见鸭!!!