我已经尝试了几种方法来完成这件事,但我卡住了,我可以访问模型,但我不能访问视图部分来设置选项disabled with set_sensitive我找不到任何例子或文档提到如何做到这一点。我有一个comboboxtext对象在combobox变量内,和id内的id。这是我所做的:
auto model = combobox.get_model();
for (auto iter = model->children().begin();
iter != model->children().end(); ++iter) {
auto row = *iter;
std::string value;
row->get_value(1, value);
if (value == id) {
// disable the row
???
break;
}
}
任何帮助都将不胜感激。
我看了文档,我问chatGTP,失败了坏:D找到的例子,但对于Gtkmm 4和不兼容.
1条答案
按热度按时间vkc1a9a21#
我找不到访问所选行cellRenderer的方法来做一个敏感的false。基本上,我无法访问ComboBoxText的内部。我可以提取模型和它的某些部分,但没有任何可用的。(版本4在模型中提供get_column_types,但版本3没有)
经过大量的尝试和错误,我给予了,使用了一个普通的组合框。我留下了一个示例代码,这样其他人就可以找到一些有用的东西,而不必浪费五天的时间去研究。有几种方法可以做到这一点,但只是一个例子:
希望有人能找到答案,看到它会很酷。谢谢。