一个关于自定义QCOMBOBOX显示的问题
各位最近开发中遇到个问题,需要在QCOMBOBOX列表中显示不同颜色的文字
但是QCOMBOBOX本身无法做到,所以通过构建带有label的QListWidget,然后设置QCOMBOBOX的
setModel为QListWidget的model的方式来完成。
但是如图1效果是达到了但是我选择某项后,Combobox收起后没有显示我所选择项的文字信息如图2。
对了我这个COMBOBOX是放在qtablewidget的一个cell中的应该不会因为这个引起的吧?
我百思不得其解所以来这里问下大家,谢谢
图1
图2
[解决办法]
你缺少一个QListWidget选择完成之后需要发出一个信号,将数据写入模型中,你可以这样,首先编写一个槽函数,连接QListWidget的voiditemSelectionChanged();然后再相应的槽函数中调用QAbstractItemModel的void QAbstractItemDelegate::commitData(QWidget * editor) 这个信号,发出这个信号之后,模型会将当前的数据写入到视图中。
[解决办法]
代码太少,不知道情况,不过这是设置combobox的文字颜色的代码
ui->comboBox->setItemData(0, QColor(0, 255, 0) , Qt::ForegroundRole);