qt_create_translation 不会更改 .ts 文件或创建 .qm 文件

问题描述 投票:0回答:1

我创建了一个小测试项目来展示我的问题:

main.cpp

#include <QApplication>
#include <QPushButton>

int main(int argc, char* argv[]) {
    QApplication a(argc, argv);
    QPushButton button(QApplication::tr("Hello, World!"), nullptr);
    button.resize(200, 100);
    button.show();
    return QApplication::exec();
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.27)
set(CMAKE_CXX_STANDARD 23)

project(TestQtWidgetsProject)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

add_executable(TestQtWidgetsProject main.cpp)

find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
target_link_libraries(TestQtWidgetsProject Qt::Core Qt::Gui Qt::Widgets)

find_package(Qt6 REQUIRED LinguistTools)
qt_create_translation(QM_FILES ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/translation_ru.ts)

我还在项目根目录下创建了一个空文件

translation_ru.ts

但是在构建项目后,文件

translation_ru.ts
仍然为空,并且
${CMAKE_BINARY_DIR}
中没有创建 .qm 文件。为什么?

c++ qt cmake translation
1个回答
0
投票

我仍然没有弄清楚为什么这段代码不起作用,但正如 Alan Birtles 所说,该命令已被弃用,所以这可能就是原因。

这是该项目的工作代码示例:

find_package(Qt6 REQUIRED LinguistTools)

qt_add_translations(TestQtWidgetsProject
        INCLUDE_DIRECTORIES
            ${PROJECT_SOURCE_DIR}
        TS_FILES
            translation_ru.ts)

add_dependencies(TestQtWidgetsProject update_translations)
© www.soinside.com 2019 - 2024. All rights reserved.