函数
   
   tr()
   
    的原型是
   
   
    QObject::tr(),
   
   
    被它处理的字符串可以使用工具提取出来翻译成其他语言,也就是国际化使用。如果想让你的程序实现国际化,那么就在用户所有可见的字符串处都使用
   
   
    QObject::tr()!
   
   
    但是我们在使用的过程中通常是使用
   
   
    tr()
   
   
    ,而并非是
   
   
    QObject::tr()
   
   
    ,这是为什么呢?原来,
   
   
    tr()
   
   
    函数是定义在
   
   
    QObject
   
   
    里面的,所有使用了
   
   
    Q_OBJECT
   
   
    宏的类都自动具有
   
   
    tr()
   
   
    的函数。和
   
   
    connect
   
   
    函数一样,都是继承了
   
   
    QObject
   
   
    所以能够直接使用。
   
  
  
   Qt
   
    中在按钮上显示字符
   
   
    '&'
   
   
   
   1
   
    、通常使用含字符
   
   
    '&'
   
   
    的字符串为按钮的显示名称,如果设置按钮的
   
   
    text
   
   
    为
   
   
    "&Cancel",
   
   
   
    即设置
   
   text, setText("&Cancel");
   
    或创建时
   
   
    QPushButton *pushButton = new QPushButton (QObject::tr("&Cancel"));
   
   
   Qt
   
    的编译器会将字符
   
   
    '&'
   
   
    后的
   
   
    'C'
   
   
    在显示时下方多一下划线,表明
   
   
    'C'
   
   
    为该按钮的快捷键,通过
   
   
    "Alt
   
   
    +
   
   
    c"
   
   
    操作来实现对
   
   
    pushButton
   
   
    的点击。
   
   
   2
   
    、有的时候,我们会有这种需求,想在按钮上或别的控件上以包括字符
   
   
    '&'
   
   
    为显示名如
   
   
    "Cancel&Exit"
   
   
    ,这样字符串中的
   
   
    '&'
   
   
    需要对其进行转义,
   
   
   
    通常我们会想到使用
   
   "/"
   
    来实现,试过发现不行,后来,直接使用
   
   
    '&'
   
   
    来转义没想到出现了想要的效果。即
   
   
    tr("Cancle&&Exit")
   
   
    。
   
  
  
   
    view plain
   
   
    copy to clipboard
   
   
    print
   
   
    ?
   
  
  
   #include <QApplication>
  
  
   #include <QtGui>
  
  
   #include <QObject>
  
  
   int main (int argc, char *argv[])
  
  
   QApplication app (argc, argv);
  
  
   QWidget *widget = new QWidget;
  
  
   QHBoxLayout *mainLayout = new QHBoxLayout;
  
  
   QString str = QObject::tr("&Cancle&&Exit");
  
  
   QPushButton *pushButton = new QPushButton (str);
  
  
   QObject::connect (pushButton, SIGNAL (clicked()), qApp, SLOT (quit ()));
  
  
   mainLayout->addWidget (pushButton);
  
  
   widget->setLayout (mainLayout);
  
  
   widget->show ();
  
  
   return app.exec ();
  
  
   $qmake -project
  
  
   $qmake
  
  
   $make
  
  根据我查到的信息,这两种写法都是 lambda 表达式的一种,它们可以用来创建匿名
  
   函数
  
  对象,用于传递给 connect 的槽参数。你想知道 lambda 表达式
  
   中
  
  [] 和 () 是什么意思吗?你想知道 lambda 表达式后面还有什么符号吗?希望这能帮助你理解 lambda 表达式
  
   中
  
  [] 和 () 的意思。希望这能帮助你理解 lambda 表达式的完整语法。你想知道 connect
  
   中
  
  和。-> 返回类型 {
  
   函数
  
  体 }
                                           首先来说说
  
   tr
  
  的用处,因为
  
   qt
  
  是一个跨平台开发的工具,因此需要考虑在不同环境下的运行。然而在不同环境下的运行,字符集也会不同,因此
  
   qt
  
  给出的解决方案是 使用
  
   tr
  
  将
  
   字符串
  
  包起来,然后就可以由
  
   qt
  
  去考虑字符集不同的问题,这个问题对于程序员来说就是透明的了。       接下来是为什么有些
  
   字符串
  
  前会有&符号。 比如说像下面这样的: openAction = new QAction(...
  
   Qt
  
  4.8.7是
  
   Qt
  
  4的终结版本,是
  
   Qt
  
  4系列版本
  
   中
  
  最稳定最经典的(很多嵌入式板子还是用
  
   Qt
  
  4.8),其实该版本是和
  
   Qt
  
  5.5差不多时间发布的。参考链接 https://www.
  
   qt
  
  .io/blog/2015/05/26/
  
   qt
  
  -4-8-7-released 
https://blog.
  
   qt
  
  .io/blog/2015/07/01/
  
   qt
  
  -5-5-released/
  
   Qt
  
  4.8.7是
  
   Qt
  
  4的终结版本,是
  
   Qt
  
  4系列版本
  
   中
  
  最稳定最经典的(很多嵌入式板子还是用
  
   Qt
  
  4.8),其实该版本是和
  
   Qt
  
  5.5差不多时间发布的。参考链接 https://www.
  
   qt
  
  .io/blog/2015/05/26/
  
   qt
  
  -4-8-7-released https://blog.
  
   qt
  
  .io/blog/2015/07/01/
  
   qt
  
  -5-5-released/
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
用lupdate 操作pro 将要翻译的提取到ts文件 命令是 lupdate my.pro ,要想获取更多有用信息则输入lupdate -verbose bl3000.pro
用 linguist 打开刚才的ts文件,linugist是在
  
   qt
  
  的bin的目录里面, 是一个
                                    rollTech公司目前开发两种产品:
  
   Qt
  
  :跨平台的图形界面设计平台
  
   Qt
  
  opia:嵌入式系统的应用程序开发平台GUI, 是 Graphical User Interface 的缩写QWidget的英文翻译为:子类化 ,部件
                                    c++
  
   中
  
  引入了右值引用和移动语义,可以避免无谓的复制,提高程序性能。有点难理解,于是花时间整理一下自己的理解。
左值、右值
C++
  
   中
  
  所有的值都必然属于左值、右值二者之一。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。很难得到左值和右值的真正定义,但是有一个可以区分左值和右值的便捷方法:看能不能对表达式取地址,如果能,则为左值,否则为右值。
看见书上又将右值分为将亡值和纯右值。纯右值就是c++98标准
  
   中
  
  右值的概念,如非引用返回
                                    一般情况下,控件上的“&”字符不会直接在控件上显示,因为&有特殊作用:它会转义后面跟的字符,被用来定义快捷键,;
有时会有情况是需要在控件上显示“&”字符,方法是写两个“&”(这样”&&”),就可以显示出一个来。