Mut*_*thu 2 qt qt4 qtablewidget qtablewidgetitem
在QT 4.7中,我试图在QTableWidget中编辑一个QTableWidgetItem,其余的所有列都应该只为我读取.我在这里遇到问题.
我通过谷歌和stackoverflow检查了一些样本,但未能实现这一点.我尝试的一些选项是,
我通过调用insertRow(rownumber)来添加行来创建行.
试用版1:我在动态插入行时执行以下操作
使用以下代码添加列以禁用编辑
QTableWidgetItem qit("");
qit.setflags(qit.flags() & ~Qt::ItemIsEditable)
qtable.setitem(row,column, &qit);
而对于其他列,我没有设置标志
上述方法无效.我可以编辑所有列(甚至是我否定了可编辑选项的列)
试用2:完成以上所有操作qtable.setEditTriggers(Qt::NoEditTriggers),然后在需要的地方将列设置为可编辑.
但是此选项会使所有列都不可编辑.
但我没有看到任何人在任何论坛上抱怨这样的人.所以我一定是犯了一些愚蠢的错误.
有人遇到这样的问题,如果是,请通过回答帮助.
fbu*_*cek 10
QTableWidget的工作示例
添加行中的第一项是可编辑的,第二项是不可编辑的.
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// Prepare layout
QMainWindow *window = new QMainWindow;
QTableWidget *tablewidget = new QTableWidget;
window->setCentralWidget(tablewidget);
// Add data
tablewidget->insertRow(0);
tablewidget->insertColumn(0);
tablewidget->insertColumn(1);
QTableWidgetItem *item;
item = new QTableWidgetItem("editable");
tablewidget->setItem(0,0,item);
item = new QTableWidgetItem("non editable");
item->setFlags(item->flags() & ~Qt::ItemIsEditable); // non editable
tablewidget->setItem(0,1,item);
window->show();
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11608 次 |
| 最近记录: |