当前位置: 代码迷 >> QT开发 >> Qt 用代码修改QtableWidget的内容时,修改成两个字么有关问题,修改成三个字就出错了
  详细解决方案

Qt 用代码修改QtableWidget的内容时,修改成两个字么有关问题,修改成三个字就出错了

热度:76   发布时间:2016-04-25 04:03:48.0
Qt 用代码修改QtableWidget的内容时,修改成两个字么问题,修改成三个字就出错了!
int row = ui->tableWidget->rowCount();
for(int i = 0;i < row;i ++)
{
     QTableWidgetItem *Item = new QTableWidgetItem("空闲");
     ui->tableWidget->setItem(i,1,Item);
}

int row = ui->tableWidget->rowCount();
for(int i = 0;i < row;i ++)
{
     QTableWidgetItem *Item = new QTableWidgetItem("不可用");
     ui->tableWidget->setItem(i,1,Item);
}
一样的代码,上面的编译没问题,下面的编译就出现错误!
F:\2013-02-27\mde\mainwindow.cpp:46: error: C2001: newline in constant
F:\2013-02-27\mde\mainwindow.cpp:47: error: C2146: syntax error : missing ')' before identifier 'ui'
F:\2013-02-27\mde\mainwindow.cpp:47: error: C2146: syntax error : missing ';' before identifier 'ui'
qt c c++

------解决方案--------------------
感觉像是
QTableWidgetItem *Item = new QTableWidgetItem("不可用");
最后面一个"号是用中文输入法造成的
你确定把`不可用` 粘贴到第1个里面就不行?
------解决方案--------------------
这个估计是源文件编码问题,先把中文换成英文,没错了之后再换回来。
最好是代码里没有中文,用翻译的办法显示中文。
------解决方案--------------------
这个估计是源文件编码问题,先把中文换成英文,没错了之后再换回来。
最好是代码里没有中文,用翻译的办法显示中文。
------解决方案--------------------
感觉是标点符号的输入法的问题。"   )  ;
这三个中有一个不对。
------解决方案--------------------
你的变量ui是指针么?新建程序中的变量ui一般都不是指针啊,除非自定义的。ui不是指针的话,应该使用'.'运算符。int row = ui.tableWidget->rowCount();
------解决方案--------------------
QTableWidgetItem *Item = new QTableWidgetItem("");
ui->tableWidget->setItem(i,1,Item);
ui->tableWidget->item(i,1)->setText("不可用");

这样试试?
------解决方案--------------------
基本确定编码问题了,你把中文字符串作为一个变量先定义起来试试,当然,最好加上tr("不可用")
------解决方案--------------------
下面是我做的实验结果,没啥问题,实在不行你就重新建个工程试试?

------解决方案--------------------
根据提示应该某个地方使用了中文字符的吧。有些中文的空格也不行的