zoukankan      html  css  js  c++  java
  • 关于QT Creater 的tr函数

    第一次使用QT 在使用下面的函数时

     1 void MainWindow::on_actionHehe_triggered()
     2 {
     3     QMessageBox::information(this,tr("Tips"),tr("Design Time : 2016-07-26"),QMessageBox::Yes);//tr("Tips")
     4 }
     5 有这样的疑惑 tr这个函数是干嘛的
     6 查看函数原型,是这样的
     7 static int information(QWidget *parent, const QString &title,
     8                            const QString& text,
     9                            const QString& button0Text,
    10                            const QString& button1Text = QString(),
    11                            const QString& button2Text = QString(),
    12                            int defaultButtonNumber = 0,
    13                            int escapeButtonNumber = -1);
    14 这两个参数只是一个QString的类 ,并且试过把tr去掉,函数变成这样
    15 
    16 void MainWindow::on_actionHehe_triggered()
    17 {
    18     QMessageBox::information(this,"Tips","Design Time : 2016-07-26",QMessageBox::Yes);//tr("Tips")
    19 }
    20 效果是一样的
    21 通过查网上的资料发现
    22 是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种:
    23 (2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包)
    24 (2b) 用tr包住中文(源码用中文,然后提供中文到其他语言的翻译包)
    25 
    26 tr 是做什么的?下面二者的区别是什么?
    27 
    28 QString text1 = QObject::tr("hello"); QString text2 = QString("hello");
    29 tr是用来实现国际化,如果你为这个程序提供了中文翻译包(其中hello被翻译成中文"你好"),那么text1的内容将是中文"你好";如果你为程序提供且使用日文翻译包,那么text1的内容将是日文。
    30 
    31 tr是经过多级函数调用才实现了翻译操作,是有代价的,所以不该用的时候最好不要用。
    
    
  • 相关阅读:
    【转】Android——设置颜色的三种方法
    Eclipse Android安装APP时覆盖安装问题
    自定义数组,实现输出改数组的长度、最大值和最小值
    用程序实现对数组a[45,96,78,6,18,66,50]中的元素进行排序
    PHP面试题2
    PHP面试题
    gulp
    移动端base.css
    笔记
    mouseover和mouseout事件在鼠标经过子元素时也会触发
  • 原文地址:https://www.cnblogs.com/tiantiantian-dianzi/p/5709776.html
Copyright © 2011-2022 走看看