QTableWidget仅编辑一列,其余列不可编辑
在Qt4.7中,我试图使QTableWidget中的一个QTableWidgetItem可编辑,其余的所有列对我来说都应该是只读的。我这里有问题 我已经通过谷歌和stackoverflow检查了一些样本,但没有做到这一点。我尝试过的一些选择是 我通过调用insertRow(rownumber)来创建行,以添加行QTableWidget仅编辑一列,其余列不可编辑,qt,qt4,qtablewidget,qtablewidgetitem,Qt,Qt4,Qtablewidget,Qtablewidgetitem,在Qt4.7中,我试图使QTableWidget中的一个QTableWidgetItem可编辑,其余的所有列对我来说都应该是只读的。我这里有问题 我已经通过谷歌和stackoverflow检查了一些样本,但没有做到这一点。我尝试过的一些选择是 我通过调用insertRow(rownumber)来创建行,以添加行 试用1:我在动态插入行时执行以下操作 在UI对话框中启用编辑触发器 使用以下禁用编辑的代码添加列 QTableWidgetItem qit(“”); setflags(qit.flag
- 在UI对话框中启用编辑触发器
- 使用以下禁用编辑的代码添加列
QTableWidgetItem qit(“”); setflags(qit.flags()&~Qt::ItemIsEditable) setitem(行、列和qit)代码>
- 对于其他栏目,我不设置标志
qtable.setEditTriggers(Qt::NoEditTriggers)
执行上述操作,然后根据需要将列设置为可编辑
但此选项会使所有列都不可编辑#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();
}
但我在任何论坛上都没有看到有人这样抱怨。所以我一定是犯了一些愚蠢的错误
如果有人遇到这样的问题,如果是,请回答 的工作示例 新增行第一项可编辑,第二项不可编辑
#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();
}
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
//准备布局
QMainWindow*window=新的QMainWindow;
QTableWidget*tablewidget=新的QTableWidget;
窗口->设置中心Widget(tablewidget);
//添加数据
tablewidget->insertRow(0);
tablewidget->insertColumn(0);
tablewidget->insertColumn(1);
QTableWidgetItem*项目;
项目=新的QTableWidgetItem(“可编辑”);
tablewidget->setItem(0,0,item);
项目=新的QTableWidgetItem(“不可编辑”);
item->setFlags(item->flags()&~Qt::ItemIsEditable);//不可编辑
tablewidget->setItem(0,1,项);
窗口->显示();
返回a.exec();
}