如何通过DEFINE在qt.pro文件中添加路径
我想在.Pro文件中添加一个我的翻译文件夹的路径,它可以从C++ /QML部分访问,也可以在.Pro文件中使用。p> 我遇到了DEFINES+=函数,并以数字PI为例使其工作。此定义可以用qDebug Ge()从C++调用 现在我有一个翻译文件夹,位于.pro文件上方的两个目录中,称为translations。因此我试着用这样的方法:如何通过DEFINE在qt.pro文件中添加路径,qt,qmake,Qt,Qmake,我想在.Pro文件中添加一个我的翻译文件夹的路径,它可以从C++ /QML部分访问,也可以在.Pro文件中使用。p> 我遇到了DEFINES+=函数,并以数字PI为例使其工作。此定义可以用qDebug Ge()从C++调用 现在我有一个翻译文件夹,位于.pro文件上方的两个目录中,称为translations。因此我试着用这样的方法: DEFINES += "TRANSPATH=\"../../translations\"" 但是当我试图通过qDebug访问它时,我得到了错误 -预期主表达式
DEFINES += "TRANSPATH=\"../../translations\""
但是当我试图通过qDebug访问它时,我得到了错误
-预期主表达式
和
-在“.”标记之前应为非限定id
在我的.pro文件中,我也想访问TRANSPATH,但使用它就像
TRANSLATIONS += \
$$(TRANSPATH)/test_TEST.ts \
../../translations/de_DE.ts \
../../translations/zh_CN.ts
}
只会导致此错误:
Updating '../../../../../../../test_TEST.ts'...
Found 63 source text(s) (63 new and 0 already existing)
Cannot create /test_TEST.ts: Zugriff verweigert
Updating '../../translations/de_DE.ts'...
Found 63 source text(s) (0 new and 63 already existing)
我试图在网上找到其他例子,但没有找到任何有用的。
在翻译+=第一部分中,将措辞更改为:
TRANSPATH/test_TEST.ts
{TRANSPATH}/test_TEST.ts
$$TRANSPATH/test_TEST.ts
$${TRANSPATH}/test_TEST.ts
但什么都没用。这是我第一次尝试定义一些东西,也许我做错了?请帮忙
示例代码/.pro文件:
# this file will be loaded from the main import path
MAIN_QML_FILE = main.qml
INCLUDEPATH += ./Plugins
INCLUDEPATH += ./qml
DEFINES += "PI=\"3.1415926\""
DEFINES += "TRANSPATH=\"../../translations\""
QT += core
# this is only seen by the linguist tools (lupdate)
lupdate_only{
SOURCES = \
../../qml/Widgets/SomeFiles/*.qml
TRANSLATIONS += \
$$(TRANSPATH)/test_TEST.ts \
../../translations/de_DE.ts \
../../translations/zh_CN.ts
}
TRANSPATH应指向与.././translations/de_de.ts相同的文件夹
是的。该路径将从C++中重新使用,用于自定义qter对象。 首先,这个错误从<代码> qGuest >:
Cannot create /test_TEST.ts: Zugriff verweigert
来自这里:
$$(TRANSPATH)/test_TEST.ts
您正在引用一个未定义的变量,即TRANSPATH。执行此操作时:
DEFINES += "TRANSPATH=\"../../translations\""
您没有定义变量:您正在使用-D
标志将define附加到编译器命令行(您可以在creator的“编译输出”窗格中进行检查)
所以,只要有一个qmake
变量:
TRANSPATH = ../../translations
现在,您可以在pro文件的其他位置使用它,例如
TRANSLATIONS += \
$$(TRANSPATH)/test_TEST.ts \
../../translations/de_DE.ts \
../../translations/zh_CN.ts
}
您也可以在定义中使用它,但要注意转义:
DEFINES += "TRANSPATH=\\\"$$TRANSPATH\\\""
在你的编译器中,你会发现
-DTRANSPATH=\"..\..\translations\"
和其他旗帜一起
现在你可以放心了
qDebug() << TRANSPATH;
qDebug()仍未到达正确的文件夹。。。但是从C++访问现在正在更新……/…/ /…/…/…/TestyTest.TS…找到63个源文本(63个新文本和0个现有文本)无法创建/测试\u test.ts:Zugriff verweigert