• 7255阅读
  • 5回复

关于QTableWidget与配置文件 [复制链接]

上一主题 下一主题
离线fridayboy
 
只看楼主 倒序阅读 楼主  发表于: 2008-06-15
— 本帖被 XChinux 执行加亮操作(2008-06-16) —
有一个配置文件1.cfg,里面有100行数据,每一行有2列,现在要把这些数据读到一个QTableWidget对象里面显示出来。本人构造了一个结构体,采用for循环对QTableWidget对象tablewidget的行列逐行插入并显示,是可以完成的。但是总感觉比较“笨”,应该可以用QFile的方式直接访问和读取配置文件1.cfg,希望高手指点,期待中。。。。。。
离线XChinux

只看该作者 1楼 发表于: 2008-06-16
// 假设每列以一个空格分隔

QStandardItemModel *model = new QStandardItemModel;
model->setColumnCount(2);
QString strLine;
QStandardItem *item;
QList<QStandardItem *> items;
QFile file("yourfile");
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
while (!file.atEnd())
{
  strLine = QString(file.readLine()).trimmed();
  if (strLine.isEmpty())
  {
    continue;
  }
  items.clear();
  item = new QStandardItem(strLine.section(" ", 0, 0));
  items.push_back(item);
  item = new QStandardItem(strLine.section(" ", 1, 1));
  items.push_back(item);
  model->appendRow(items);
}
file.close();
}
tableView->setModel(model);
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线fridayboy
只看该作者 2楼 发表于: 2008-06-27
XChinux  用的是QTableView,所以可以用setModel(model);但是我问的是QTableWidget,它无法访问QTableView里面的私有函数setModel。因为我要使用setCheckedState()使得ITEM可以打勾选择,如果用QTableView控件,ITEM好像不可以用鼠标直接点选(点击没有反应),但是QTableWidget是可以的。当然可能是我对这两个控件还认识不深,期望XChinux  不吝指点,等候中。。。。。。
离线fridayboy
只看该作者 3楼 发表于: 2008-06-27
如果XChinux 不在线,其他兄弟同仁看到此贴,希望给予指导。
离线fridayboy
只看该作者 4楼 发表于: 2008-06-29
没人知道吗?
离线ldqiang
只看该作者 5楼 发表于: 2008-06-29
QTableWidget好象是配合QTableWidgetItem一起使用的啊,本人感觉好像是new QTableWidgetItem,然后通过QTableWidget中的一个SetIItem(row ,clomun, item)这样进行操作的啊,你把上面的代码改成这种可能行
快速回复
限100 字节
 
上一个 下一个