在构造函数中迭代QTableWidget单元格
Iterate over QTableWidget cells in constructor?
我想将QTableWidget的子类从其构造函数设置为只读,但我找不到一种方法将标志放在所有项上,并且所示的代码不起作用,因为columnCount和rowCount在构造函数中被调用,因此返回0。
for (int i=0;i<this->columnCount();i++) {
for (int j=0;j<this->rowCount();j++) {
this->item(i,j)->setFlags(Qt::ItemFlag::NoItemFlags);
}
}
由于标题是通过Qt设计器初始化的双击形式,我没有办法从代码中知道列/行数(除了硬编码,但我想避免这种情况),我找不到任何方法将标志应用于所有项目。
我也看到了一些修改事件本身的变通方法来防止数据修改,但我也宁愿避免这种情况。
是否有一种方法可以正确设置这些标志,或者我是否必须摆脱Qt设计器部分以添加构造函数中的所有头初始化?
嘿,这解决了你的问题…
for (int i=0;i< ui->tableWidget->rowCount();i++) {
for (int j=0;j< ui->tableWidget->columnCount();j++) {
QTableWidgetItem *item = ui->tableWidget->item(i,j);
item->setFlags(Qt::NoItemFlags);
}
}
试试这个,你可以很容易地找出你的代码的问题…rowCount()和columncount () api应该正确对齐,它的item() api,而不是itemAT()。请检查。
因为你的QTableView被填充在自动生成的setupUi()
(第一个小部件被创建,然后项目被添加),你可以添加一个方法像setReadOnly(bool)
到你的子类(我想小部件在设计器被提升到),并显式调用它之后setupUi()
。将更加灵活,因为你可以使用这个子类的非只读表以及
相关文章:
- 什么时候调用组成单元对象的析构函数
- 不同翻译单元中不可重载的非内联函数定义
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- VC++本机单元测试,找不到调试符号
- 将QIcon添加到QTableView单元格
- 用于交叉编译和CMake的预处理器宏的单元测试
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 字节真的是最小可寻址单元吗
- PyQT - 在 QTableWidget 单元格中显示垂直文本
- 基于单元格代替QTableWidget中的一行
- 在一个 QTableWidget 单元格中显示不同颜色的字符串
- QTableWidget - 组合框委托如何允许每个单元格的不同选项
- 如何从qtablewidget检测单元格中单击的按钮
- 如何在QTableWidget中动态分配单元格
- 撤消Qt中QTableWidget的单个单元格
- 在QTableWidget中获取QCheckBox的单元格位置
- QTableWidget单元格更新
- 在构造函数中迭代QTableWidget单元格
- QTableWidget - 仅适用于特定单元格/列的上下文菜单