0

我正在修复别人的 Qt 代码,这涉及向 QTableWidget 添加一些额外的列。当前代码按其整数索引对列进行索引。我想更改此代码,使其按标题名称进行索引。目前的代码看起来有点像这样:

// column 1 => Semantics
// column 2 => algorithm
// colunm 3 => ...
// ...

tableWidget->setItemDelegateForColumn(0, semanticsDelegate);
tableWidget->setItemDelegateForColumn(1, algorithmsDelegate);
tableWidget->setItemDelegateForColumn(2, specDelegate);

我想把它改成这样:

tableWidget->setItemDelegateForColumn(foo("Semantics"), semanticsDelegate);
tableWidget->setItemDelegateForColumn(foo("Algorithm"), algorithmsDelegate);
tableWidget->setItemDelegateForColumn(foo("..."), specDelegate);

这在Qt中可能吗?(QTableWidget 列的标题是“语义”、“算法”等)还是我必须创建一个表字段的枚举来处理这个?

4

1 回答 1

1

项目委托由一个索引int,如果你想以这种方式进行,你必须提供一个函数来将列标题映射到一个唯一的整数。如何实现该foo()功能取决于您 - 枚举和 aQList< QPair<QString,enum_item> >应该对您有好处 - 。如果您的应用程序将被翻译,请不要忘记使用Qt 的 i18n 工具

于 2013-10-03T07:10:03.550 回答