会员列表 统计排行 帮助
  • 270阅读
  • 3回复

[提问]QTableWidget在插入一行后将表中内容保存出错

楼层直达
级别: 新手上路
void tables::on_add_clicked()
{
    int rows=ui->TableInfor->rowCount();    
ui->TableInfor->insertRow(rows);  
ui->TableInfor->selectRow(rows);
}
void tables::on_writ_clicked()
{  
  rows=ui->TableInfor->rowCount();  
columns=ui->TableInfor->columnCount();  
for(int i=0;i<rows;i++)    
for(int j=0;j<columns;j++)
{      
    if(ui->TableInfor->item(i,j)->text()=="")        
      ui->TableInfor->item(i,j)->setText("null");  
       inforow[j]=ui->TableInfor->item(i,j)->text();  
   }  
  QFile file("info.dat");  
  if(!file.open(QIODevice::WriteOnly))  
  {      
  std::cerr <<"Cannot open file for writing: "        
          <<qPrintable(file.errorString()) <<std::endl;      
  return;  
  }    
QDataStream out(&file);  
   w1=QString::number(rows,10);  
   w2=QString::number(columns,10);  
   out<<w1<<w2;    
for(int i=0;i<rows;i++)    
  out <<inforow[0]<<inforow[1]<<inforow[2]<<inforow[3]<<inforow[4]<<inforow[5];
}
关键词: QTableWidge Qfile
《铸╰
级别: 新手上路
只看该作者 1楼 发表于: 02-04
rows=ui->TableInfor->rowCount();
    columns=ui->TableInfor->columnCount();

    QFile file("info.dat");
    if(!file.open(QIODevice::WriteOnly))
    {
        std::cerr <<"Cannot open file for writing: "
                  <<qPrintable(file.errorString()) <<std::endl;
        return;
    }

    QTextStream out(&file);
    for(int row=0;row<rows;++row){
        for( int column=0;column<columns;++column){
            QString str=ui->TableInfor->item(row,column)->text();
            if(!str.isEmpty())
                out<<row<<" "<<column<<" "<<str<<endl;
        }
现在貌似没错了
《铸╰
级别: 新手上路
只看该作者 2楼 发表于: 02-04
发现现在贴代码的贴都没人看··· 555
《铸╰
级别: 总版主
只看该作者 3楼 发表于: 02-06
解决了就好
有C++/Qt/Qt UI界面开发、PHP、用友软件相关开发业务相商的朋友请发电子邮件到XChinux@163.com
有技术问题的朋友请在论坛里发贴提问,不要通过私人短信或者QQ/MSN提问讨论,谢谢合作

邮件:  XChinux@163.com
网址: http://www.qtcn.org
博客: http://hi.baidu.com/xchinux
操作系统: Windows XP, Kubuntu 10.10
Qt SDK: Qt 4.7 for Win/X11/Symbian/MeeGo
主要开发方向: C++/Qt/Qt UI界面程序开发、PHP程序开发、用友相关二次开发
经常使用的数据库:PostgreSQL、MS SQLServer、MySQL、SQLite
经常使用的工具: Opera/Firefox, Vim, WPS/RedOffice, Subversion、二笔输入法
快速回复

限100 字节
 
认证码:
验证问题: 90 - 3 = ?
上一个 下一个