Dij*_*kay 0 c++ qt constructor qt-designer qtablewidget
我想从其构造函数中设置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);
}
}
Run Code Online (Sandbox Code Playgroud)
由于标题是通过Qt Designer使用双击表单进行初始化的,因此我无法从代码中了解列/行的计数(除非通过硬编码对其进行编码,但我想避免这种情况),但我找不到将标志应用于所有项目的任何方法。
我还看到了一些针对修改事件本身的变通办法,以防止数据修改,但是我也希望避免这种情况。
有没有一种方法可以正确设置这些标志,还是必须摆脱Qt Designer部分才能在构造函数中添加所有标头初始化?
小智 5
嘿,这解决了您的问题...
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);
}
}
Run Code Online (Sandbox Code Playgroud)
只需尝试一下,您的代码就可以轻松解决问题... rowCount()和coloumnCount()api应该正确对齐,并且其item()API而不是itemAT()。.请检查。
| 归档时间: |
|
| 查看次数: |
2484 次 |
| 最近记录: |