• 9505阅读
  • 4回复

qtableview如何才能一次选中一行和只编辑一行最后一列××××× [复制链接]

上一主题 下一主题
离线sun83819
 
只看楼主 倒序阅读 楼主  发表于: 2010-02-22
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
初学qt。直接在UI中拖了一个qtableview控件,列数为4。
问题1:
现在的情况是点击了一行,整行高亮,没问题,当我点击另一行时,这时就有2行高亮了,,请问如何只高亮当前选中行。

问题2:
在其属性的eidttriggers里设置selectedclicked就是没列都可以编辑。
如何只让编辑选中行最后一列的值,谢谢大虾。

以下为代码:
  1. model.setColumnCount(4); //��
  2. model.setRowCount(200);
  3. model.setHeaderData(0,Qt::Horizontal,QString::fromUtf8("卷烟名"));
  4. model.setHeaderData(1,Qt::Horizontal,QString::fromUtf8("批发价"));
  5. model.setHeaderData(2,Qt::Horizontal,QString::fromUtf8("需求量"));
  6. model.setHeaderData(3,Qt::Horizontal,QString::fromUtf8("订量"));
  7. for(int j=0;j<3;j++)
  8. {
  9. // QStandardItem *itemID = new QStandardItem(QString::fromUtf8("黄鹤楼"));//QString::number(j)));
  10. // model.setItem(j,0,itemID);
  11. model.setItem(j, 0, new QStandardItem(QString::fromUtf8("黄鹤楼")));
  12. model.setItem(j, 1, new QStandardItem("22"));
  13. model.setItem(j, 2, new QStandardItem("0"));
  14. }
  15. ui.tableView->setModel(&model);
  16. ui.tableView->verticalHeader()->hide();
  17. ui.tableView->setColumnWidth(0,129);
  18. ui.tableView->setColumnWidth(1,68);
  19. ui.tableView->setColumnWidth(2,68);
  20. ui.tableView->setColumnWidth(3,68);
  21. ui.tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
离线sun83819
只看该作者 1楼 发表于: 2010-02-23
help!!!!!
离线wangjuns8
只看该作者 2楼 发表于: 2010-02-23
你说的应该是Qt4以上版本的吧?我用的是QT3.3.8,是QTable:
1.设置单行选中:
table->setSelectionMode(QTable::SingleRow);
2.设置某列为只读:
table->setColumnReadOnly(0, true);
table->setColumnReadOnly(1, true);
table->setColumnReadOnly(2, true);

虽然版本不同,但是应该有类似的方法吧,你找找
离线sun83819
只看该作者 3楼 发表于: 2010-02-23
引用第2楼wangjuns8于2010-02-23 09:24发表的  :
你说的应该是Qt4以上版本的吧?我用的是QT3.3.8,是QTable:
1.设置单行选中:
table->setSelectionMode(QTable::SingleRow);
2.设置某列为只读:
table->setColumnReadOnly(0, true);
.......


首先感谢回帖,,是的4.6
和qtableview
但是找不到qtable的api,,也没看到类似的啊~~
离线sun83819
只看该作者 4楼 发表于: 2010-02-23
ui.tableView->setSelectionMode(QTableView::SingleSelection);

这个有,问题,解决,,readonley没发现。
快速回复
限100 字节
 
上一个 下一个