JHHK

欢迎来到我的个人网站
行者常至 为者常成

【MJ】06_Qt开发基础

参考:【秒懂音视频开发】06_Qt开发基础

本文是上面文章的摘要,只用于自己快速浏览.

目录

.pro文件的配置

一. 夸平台配置

跨平台配置方式一:

# windows
win32:INCLUDEPATH += F:/Dev/ffmpeg-4.3.2/include
win32:LIBS += -LF:/Dev/ffmpeg-4.3.2/lib \
              -lavcodec \
              -lavdevice \
              -lavfilter \
              -lavformat \
              -lavutil \
              -lpostproc \
              -lswscale \
              -lswresample
 
# mac
macx:INCLUDEPATH += /usr/local/Cellar/ffmpeg/4.3.2/include
macx:LIBS += -L/usr/local/Cellar/ffmpeg/4.3.2/lib \
            -lavcodec \
            -lavdevice \
            -lavfilter \
            -lavformat \
            -lavutil \
            -lpostproc \
            -lswscale \
            -lswresample \
            -lavresample
 
# linux
# linux:INCLUDEPATH += ...
# linux:LIBS += ...

夸平台配置方式二:

# windows
win32 {
    INCLUDEPATH += F:/Dev/ffmpeg-4.3.2/include
    LIBS += -LF:/Dev/ffmpeg-4.3.2/lib \
            -lavcodec \
            -lavdevice \
            -lavfilter \
            -lavformat \
            -lavutil \
            -lpostproc \
            -lswscale \
            -lswresample
}
 
# mac
macx {
    INCLUDEPATH += /usr/local/Cellar/ffmpeg/4.3.2/include
    LIBS += -L/usr/local/Cellar/ffmpeg/4.3.2/lib \
            -lavcodec \
            -lavdevice \
            -lavfilter \
            -lavformat \
            -lavutil \
            -lpostproc \
            -lswscale \
            -lswresample \
            -lavresample
}

二. 自定义变量

可以将公共的信息抽取成变量,然后使用$${}去访问。

FFMPEG_HOME = /usr/local/Cellar/ffmpeg/4.3.2
INCLUDEPATH += $${FFMPEG_HOME}/include

三. 读取系统环境变量

# 使用message打印环境变量JAVA_HOME的值
message($$(JAVA_HOME))

控件的基本使用

一. 窗口设置

设置窗口标题

设置窗口大小(可缩放)

设置窗口固定大小

设置窗口位置

二 子控件

new出来的Qt控件是不需要程序员手动delete的,Qt内部会自动管理内存:当父控件销毁时,会顺带销毁子控件。

信号与槽

一. 基本使用

信号(Signal):比如点击按钮就会发出一个点击信号
槽(Slot):一般也叫槽函数,是用来处理信号的函数

connect(信号的发送者, 信号, 信号的接收者, 槽);

二. 自定义信号与槽

信号的发送者
sender exit

信号的接受者
receiver handleExit

连接

connect(sender, &Sender::exit, receiver, &Receiver::handleExit);      

发送信号
emit sender->exit();

信号与槽的参数和返回值

三. 连接2个信号

connect(sender,
        &Sender::exit,
        sender2,
        &Sender2::exit2);

四. Lambda表达式

Lambda表达式
有点类似于JavaScript中的闭包、iOS中的Block,本质就是函数

完整结构: [capture list] (params list) mutable exception-> return type { function body }
✓capture list:捕获外部变量列表
✓params list:形参列表,不能使用默认参数,不能省略参数名
✓ mutable:用来说用是否可以修改捕获的变量
✓ exception:异常设定
✓return type:返回值类型
✓function body:函数体

五. UI文件

对着按钮右键,选择转为槽。


行者常至,为者常成!





R
Valine - A simple comment system based on Leancloud.