一个关于Qt和git的问题
今天小刘问我,“我想在qt中获取git的版本信息,但是不想改代码怎么办?”
答,“那就改一下*.pro文件,从这个文件获取,你网上搜一下,我之前写过一篇关于cmake和git的,应该类似”
小刘,“搜了半天没有啊!!”
答,“你怎么搜的?搜的啥关键字?”
小刘,“怎么在qt pro中获取git信息啊!”
我,“小刘,你可真直接。。。。”
好吧,这个问题本质上应该说是怎么在qmake中运行程序的问题,即,关键字 应该是 qmake call command
qmake 中获取git版本信息
- 编写*.pro
可以看到,我们实际上是通过在*.pro中调用了qmake的函数system
,通过其运行了需要的git命令,所以这个方法不局限于获取git版本信息。
exists (./.git) {
GIT_BRANCH = $$system(git rev-parse --abbrev-ref HEAD)
GIT_TIME = $$system(git show --oneline --format=\"%ci%H\" -s HEAD)
APP_VERSION = "TEST $${GIT_BRANCH}: $${GIT_TIME}"
} else {
APP_VERSION = None
}
DEFINES += APP_VERSION=\"\\\"$$APP_VERSION\\\"\"
- 将版本信息显示到窗口标题
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle(APP_VERSION); // APP_VERSION 就是在*.pro中定义的宏
}
- 程序运行结果
qmake的其他内置function
qmake还有其他function也很有用,qmake的其他内置function