如何使用Qt中的PaintEvent()修改QCombobox当前项

时间:2012-12-18 11:12:15

标签: qt combobox qt4 paintevent

我有一个Combobox有3个项目,即项目1,项目2和项目3.我在.ui文件中添加了这3个项目,并且还使用资源文件为每个项目添加了一个图像。现在,当我运行应用程序时,它会显示组合框中的第一个项目以及左侧的图像。当我点击下拉列表时,我可以看到所有项目以及图像。

我基本上想要做的只是在组合框中显示图像,当用户点击下拉列表时,它也应该显示图像和文本。

场景:Combobox中的项目和图片添加如下:

Image 1 Item 1
Image 2 Item 2
Image 3 Item 3

当我运行应用程序时,它应该在组合框中显示为

Image1

因为默认显示第一项。我认为在绘制当前选择时可以完成,QCombobox使用重新植入:void MyCombo::paintEvent(QPaintEvent *e)这是我不知道的。

任何人都可以帮助我吗? :)

我怎样才能实现呢?

1 个答案:

答案 0 :(得分:0)

您将继承QComboBox并重新实现void QComboBox::showPopup () [virtual]
附:如果重新实现此功能以显示自定义弹出窗口,请确保调用hidePopup()以重置内部状态。
我的第二个想法是实现一个组合框架的模型,但我现在不会对弹出元素有任何不满。