Qt案例以及创建第一个Qt程序

一、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

<转载请说明出处>

欢迎提出报告的意见鸭!!!

猜你喜欢

转载自blog.csdn.net/Pikachu811/article/details/129524606