• 4887阅读
  • 2回复

关于QString和和tr的问题 [复制链接]

上一主题 下一主题
离线killua_hzl
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-15
  1.    QChar ch=first;
  2.     while(ch<=last)
  3.     {
  4.         ui->primaryComboBox->addItem(tr(QString(ch)));    //报错
  5.     ui->secondaryComboBox->addItem(tr(QString(ch))); //报错
  6.         ui->tertiaryComboBox->addItem(tr(QString(ch)));  //报错
  7.         ch=ch.unicode()+1;
  8.     }


D:/Projects/Sort/sortdailog.cpp:40: error: no matching function for call to `sortdailog::tr(QString)'
D:/Projects/Sort/sortdailog.cpp:41: error: no matching function for call to `sortdailog::tr(QString)'

请问是哪里出了问题??
===========================================================================================
完整代码
  1. #include "sortdailog.h"
  2. #include<QtGui>
  3. #include<QString>
  4. sortdailog::sortdailog(QWidget *parent)
  5.     : QDialog(parent)
  6. {
  7.     ui->setupUi(this);
  8.     ui->secondaryGroupBox->hide();  //设置为隐藏
  9.     ui->tertiaryGroupBox->hide();    //设置为隐藏
  10.     this->layout()->setSizeConstraint(QLayout::SetFixedSize);  //将此层设置为适合大小
  11.     setColumnRange('A','Z');  //设置默认范围
  12. }
  13. sortdailog::~sortdailog()
  14. {
  15.     delete ui;
  16. }
  17. void sortdailog::setColumnRange(QChar first,QChar last)
  18. {
  19.     //清除原有数据
  20.     ui->primaryComboBox->clear();
  21.     ui->secondaryComboBox->clear();
  22.     ui->tertiaryComboBox->clear();
  23.     ui->secondaryComboBox->addItem(tr("None"));
  24.     ui->tertiaryComboBox->addItem(tr("None"));
  25.     ui->primaryComboBox->setMinimumSize(ui->secondaryComboBox->sizeHint());  //设置理想大小
  26.     QChar ch=first;
  27.     while(ch<=last)
  28.     {
  29.         ui->primaryComboBox->addItem(tr(QString(ch)));  
  30.         ui->secondaryComboBox->addItem(tr(QString(ch)));
  31.         ui->tertiaryComboBox->addItem(tr(QString(ch)));
  32.         ch=ch.unicode()+1;
  33.     }
  34. }
[ 此帖被killua_hzl在2009-04-18 22:25重新编辑 ]
离线sundp

只看该作者 1楼 发表于: 2009-04-15
你的注释里说的,“tr()只能接受字符串类型参数”,但QString也不是tr()要求的字符串类型。
你这样试试:
tr(QString(ch).toLocal8Bit())
人境结庐<http://sundp70.blog.163.com>心远地偏
离线killua_hzl

只看该作者 2楼 发表于: 2009-04-18
搞定了 ...直接addItem(QString(ch));就OK了
快速回复
限100 字节
 
上一个 下一个