找回密码
 立即注册
收起左侧

关于 QT快速入门 第九章 第一个案例 的一个错误问题请教

4
回复
4776
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2014-9-5 18:36:57 显示全部楼层 |阅读模式
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QLabel>
  4. MainWindow::MainWindow(QWidget *parent) :
  5.     QMainWindow(parent),
  6.     ui(new Ui::MainWindow)
  7. {
  8.     ui->setupUi(this);
  9.     QLabel *label = new QLabel(this);
  10.     label->setText(tr("hello Qt!"));
  11.     label->move(100,50);
  12.     QLabel *label2 = new QLabel(this);
  13.     label2->setText(tr("password","mainwindow"));
  14.     label2->move(100,80);
  15.     QLabel *label3 = new QLabel(this);
  16.     int id = 123;
  17.     QString name = "yafei";
  18.     label3->setText(tr("ID is %1,Name is %2").arg(id).arg(name));
  19.     label3->resize(150,12);
  20.     label3->move(100,120);
  21. }

  22. MainWindow::~MainWindow()
  23. {
  24.     delete ui;
  25. }
复制代码
源代码中使用tr使出字符串  但在lupdate的时候提示:
  1. tr() cannot be called without context
  2. tr() cannot be called without context
复制代码
这是为什么呢???难道没人遇到这个问题????

改用QObject::tr之后虽然可以通过  但在linguist中分成了两个部分



我看书上直接用的tr,但是不知道书中怎么通过的...而且是8个内容....


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:1100 天
连续签到:1 天
2014-9-7 09:19:02 显示全部楼层
没有问题啊,tr就那样用就可以,估计是你其他地方有问题,仔细看看
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2014-9-7 16:50:34 显示全部楼层
crazylq 发表于 2014-9-7 09:19
没有问题啊,tr就那样用就可以,估计是你其他地方有问题,仔细看看

一模一样的代码啊....用的源文件里的也一样报错....
回复 支持 反对

使用道具 举报

累计签到:1100 天
连续签到:1 天
2014-9-7 17:23:11 显示全部楼层
哪就不知道了,按道理应该没有错。你试试 label3->setTextQObject::tr("ID is '%1',Name is '%2").arg(id).arg(name));
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2015-7-29 17:42:51 显示全部楼层
我和你遇到同样的问题,但是我拿提供的源码来操作就不会提示tr()has no context,请问楼主解决了吗,可以告诉我为什么吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了