QT中的& 和 tr(“字符串“)

函数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")。
 
#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 ();   

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值