不继承QObject也可以使用tr函数

一个类如果不继承QObject是不能直接使用tr函数,有什么方法可以在不继承QObject的情况下又能直接使用tr函数呢?答案是使用Q_DECLARE_TR_FUNCTIONS宏。

使用

  • 在类中用Q_DECLARE_TR_FUNCTIONS宏定义该类。
  • 可以直接使用trtrUtf8静态方法。
static inline QString tr(const char *sourceText,
                         const char *comment = 0);
static inline QString trUtf8(const char *sourceText,
                             const char *comment = 0);

示例

class Test
{
    Q_DECLARE_TR_FUNCTIONS(Test)
public:
    Test()
    {
        qDebug() << tr("text");
        qDebug() << trUtf8("utf8-text");
    }
};
    原文作者:Qt君
    原文地址: https://segmentfault.com/a/1190000020631323
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞