第一个Qt程序

创建项目

进入ui界面拖一个按钮

在头文件中添加函数说明

cpp 复制代码
#ifndef HELLO_H
#define HELLO_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui {
class Hello;
}
QT_END_NAMESPACE

class Hello : public QMainWindow
{
    Q_OBJECT

public:
    Hello(QWidget *parent = nullptr);
    ~Hello();
    
private slots:
    void showDialog();
    
private:
    Ui::Hello *ui;
};
#endif // HELLO_H

holle.cpp

cpp 复制代码
#include "hello.h"
#include "ui_hello.h"

#include <QMessageBox>

Hello::Hello(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::Hello)
{
    ui->setupUi(this);
    //信号与槽进行连接
    connect(ui->pushButton,&QPushButton::clicked,this,&Hello::showDialog);
}

Hello::~Hello()
{
    delete ui;
}

//槽函数
void Hello::showDialog()
{
    QMessageBox::information(this,QString::fromLocal8Bit("hello"),QString::fromLocal8Bit("hello"));
}

代码详解

cpp 复制代码
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);  // 每个qt窗口应用程序都需要有一个QApplication对象
    HelloCosBrowser w;
    w.show();
    return a.exec(); // exec 让程序进入事件循环,作用:接收来自用户的事件,如鼠标事件,键盘事件
}
cpp 复制代码
#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class hello; }
QT_END_NAMESPACE

class hello : public QWidget  // QWidget是所有应用程序窗口类的基类
{
    Q_OBJECT  // 支持Qt的特性,如信号槽、对象树、元对象等

public:
    hello(QWidget *parent = nullptr);  //parent == nullptr时,该窗口为独立窗口,可在任务栏看到;当parent != nullptr,该窗口作为主窗口的控件

    ~hello();

private slots:
    void showDialog();

private:
    Ui::hello *ui;
};
#endif // HELLOCOSBROWSER_H

文件列表

文件名称 描述
pro文件 该文件是Qt的项目文件,qmake工具可根据此文件生成makefile
pro.user文件 该文件包含和用户相关的项目信息(不需要关心)
.ui文件 Qt的设计师界面文件
.cpp文件 C++源文件
.h文件 C++头文件

moc编译器的由来

  • 新的信号槽idea如何实现

Qt编译过程

moc的运行方式

  • moc编译工具由Qt框架自动调用
  • 扫描C++头文件,查找Q_OBJECT宏

使用方法

  • 继承QObject对象和其子类
  • 包含Q_OBJECT宏

为窗口加上图标

  • 准备图标文件
  • 调用setWindowIcon方法
cpp 复制代码
{
    ui->setupUi(this);

    connect(ui->pushButton, &QPushButton::clicked, this, &HelloCosBrowser::showDialog);
    setStyleSheet("QWidget{font-size: 24pt;}"); //qss对标css

    QIcon icon;
    icon.addFile("F:/4-2/images/logo.ico");
    setWindowIcon(icon);
}

为应用程序加上图标

  • 准备图标文件,格式为ico
  • 修改pro工程文件 RC_ICONS=logo.ico
  • 当指定了应用程序图标后,不需额外指定窗口图标

发布应用的三种方式

手动部署

拷贝动态库到exe目录下

打开文件的debug目录

按提示从qt目录复制dll

windeployqt部署

  • 查找windeployqt.exe程序
  • 加入环境变量
  • 执行命令windeployqt.exe exe所在目录

使用Creator部署

  • 项目导航窗口-运行-部署-添加自定义部署
  • 输入windeployqt.exe程序及对应的命令行参数
  • 执行部署命令
相关推荐
SunkingYang6 小时前
QT中怎么隐藏或显示最大化、最小化、关闭按钮
qt·关闭按钮·隐藏·显示·最大化按钮·最小化按钮
六bring个六6 小时前
QT上位机笔记
开发语言·笔记·qt
步木木6 小时前
Qt 5.14.2入门(一)写个Hello Qt!程序
开发语言·qt
FreeLikeTheWind.10 小时前
Qt 开发时可以在函数内引用的头文件
开发语言·c++·qt
binary001012 小时前
基于 Qt 的图片处理工具开发(一):拖拽加载与基础图像处理功能实现
图像处理·人工智能·qt
"_rainbow_"17 小时前
Qt中的鼠标事件
开发语言·qt
Quz1 天前
QML输入控件: TextArea的应用(带行号的编辑器)
qt·ui
m0_555762901 天前
架构下的按钮效果设置
qt·架构
黑不溜秋的1 天前
Ubuntu24.04 编译 Qt 源码
开发语言·qt
此刻我在家里喂猪呢1 天前
qt之opengl使用
qt·opengl