qt pro实战配置(兼容QCreator和vs的写法)

目录

一、本文目的

二、qt pro实战配置内容

三、代码文本


一、本文目的

        本文目的是pro配置后,vs加载pro后的功能效果和QCreator相同

       个人感觉QCreator写代码比较方便,vs是调试功能比较好。所以平时写代码的时候会用QCreator写,迫不得已的时候,才会用vs加载pro,去进行调试。

      QCreator写代码的优点如下:

             1 通过按钮右键菜单可以自动生成信号槽函数

             2 编译运行的时候,输出窗口不会有和代码无关的警告

             3 习惯用QCreator的人,写代码会更舒服

             4 pro配置上 -- 通过pro单个文件去配置,一目了然,每一个新增的配置点可以清晰的看出具体是做什么的,比较简洁,默认的配置就不去写,可以明确的知道一个项目配置了什么,比较简洁。

              对比vs的配置,界面东一块西一块的,影响观察,当然这样做的优点是把所有配置都暴露出来了,利于主动的去了解学习。(两种配置都熟悉了当然会更好,如果两种都熟练的情况下,pro配置少的优点就能体现出来了)

            5  pro使用上 -- 创建一个新项目,如果想用老项目中的配置的话,可以直接从老的pro中复制粘贴过来

             对比vs,就只能一项一项的去配置界面去修改了。旧项目中使用了哪些库,包含了哪些头文件,一个是不方便看,一个是不方便一次性的复制粘贴。(当然也有属性配置方式将库的配置写到一个文件中去保存下来,下次用的时候直接导入这个配置文件,但是也没有直接复制粘贴直观方便)

二、qt pro实战配置内容

       下面的图片已经注释了每项配置的功能,vs导入如下配置也能自动地生成sln格式的qt项目

       (还有其他没写的比如,动态库和静态库的引入,图标和exe信息的资源的引入,国际化ts的引入,网上自行搜索积累)

三、代码文本
#-------------------------------------------------
#
# Project created by QtCreator 2022-05-23T13:44:36
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testPython
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

CONFIG += c++11

#处理中文乱码问题
win32:msvc{
    QMAKE_CXXFLAGS += /execution-charset:utf-8
}

#64位编译还是32位编译的判断
greaterThan(QT_MAJOR_VERSION,4){
        TARGET_ARCH=$${QT_ARCH}
}else{
        TARGET_ARCH=$${QMAKE_HOST.arch}
}
contains(TARGET_ARCH, x86_64){
    message("64-bit")
    BIN_DIR = bin64
    DEBUG_DIR = debug64
    THIRD_PARTY_DIR = thirdParty64
    DEFINES += QMAKE_64BIT
}else{
    message("32-bit")
    BIN_DIR = bin32
    DEBUG_DIR = debug32
    THIRD_PARTY_DIR = thirdParty32
}

# release模式下可断点调试的设置
QMAKE_CXXFLAGS_RELEASE += -Zi
QMAKE_CXXFLAGS_RELEASE -= -O2  # 移除优化标志 -O2
QMAKE_CXXFLAGS_RELEASE -= -O1   # 移除优化标志 -O
QMAKE_LFLAGS_RELEASE += $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO

# 设置exe的输出目录,$$PWD就是pro的位置
# 有的地方不用$$PWD而用./是为了用相对路径,vs加载pro时会把$$PWD弄成绝对路径
win32 {
    CONFIG(release, debug|release){
        DESTDIR = ../$$BIN_DIR
    }
    else:CONFIG(debug, debug|release){
        DESTDIR = ../$$DEBUG_DIR
    }
}

# 设置一些乱七八糟的临时文件的输出目录
CONFIG(release, debug|release){
    MOC_DIR = ../temp/$$TARGET/$$BIN_DIR/moc
    RCC_DIR = ../temp/$$TARGET/$$BIN_DIR/rcc
    UI_DIR = ../temp/$$TARGET/$$BIN_DIR/ui
    OBJECTS_DIR = ../temp/$$TARGET/$$BIN_DIR/obj
}
else:CONFIG(debug, debug|release) {
    MOC_DIR = ../temp/$$TARGET/$$DEBUG_DIR/moc
    RCC_DIR = ../temp/$$TARGET/$$DEBUG_DIR/rcc
    UI_DIR = ../temp/$$TARGET/$$DEBUG_DIR/ui
    OBJECTS_DIR = ../temp/$$TARGET/$$DEBUG_DIR/obj
}

SOURCES += \
        CommonFun/BaseFilePathManage.cpp \
        CommonFun/pythonFun/PythonCInteraction.cpp \
        CommonFun/pythonFun/PythonHeader.cpp \
        PythonDebugger.cpp \
        PythonJedi.cpp \
        PythonQtTestDlg.cpp \
        PythonQtTestDlg2.cpp \
        PythonTestWgt.cpp \
        main.cpp \
        MainWindow.cpp

HEADERS += \
        CommonFun/BaseFilePathManage.h \
        CommonFun/pythonFun/PythonCInteraction.h \
        CommonFun/pythonFun/PythonHeader.h \
        MainWindow.h \
        PythonDebugger.h \
        PythonJedi.h \
        PythonQtTestDlg.h \
        PythonQtTestDlg2.h \
        PythonTestWgt.h \
        data/constData.h

FORMS += \
        MainWindow.ui \
        PythonJedi.ui \
        PythonQtTestDlg.ui \
        PythonQtTestDlg2.ui \
        PythonTestWgt.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

win32: LIBS += -L$$PWD/../$$THIRD_PARTY_DIR/Python/libs -lpython39

INCLUDEPATH += $$PWD/../$$THIRD_PARTY_DIR/Python/include
DEPENDPATH += $$PWD/../$$THIRD_PARTY_DIR/Python/include

win32: LIBS += -L$$PWD/../$$THIRD_PARTY_DIR/PyRegistBaseCallBackDll/lib/ -lPyRegistBaseCallBackDll

INCLUDEPATH += $$PWD/../$$THIRD_PARTY_DIR/PyRegistCommonCallBackDll/include
INCLUDEPATH += $$PWD/../$$THIRD_PARTY_DIR/PyRegistBaseCallBackDll/include
DEPENDPATH += $$PWD/../$$THIRD_PARTY_DIR/PyRegistBaseCallBackDll/include

DISTFILES += \
    ../res/py/demo_chardet.py \
    ../res/py/demo_test.py \
    ../res/py/globalVar.py \
    ../res/py/pyCallDll.py \
    ../res/py/python_code_jedi.py \
    ../res/py/regist_c_fun.py \
    ../res/py/regist_c_fun2.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常数0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值