首页 > 解决方案 > 在 PyQt5 中设置 QComboBox 中项目的图标大小

问题描述

我一直在尝试构建一个自定义组合框,用于在我的绘图 GUI 中选择线型类型。下拉菜单包含线型的预览,例如实线、虚线、点线。

通过设置组合框的图标大小,我已经能够调整所选行的大小

mycombobox.setIconSize(QSize(75, 25))

但是,当我单击下拉箭头以调出下拉菜单时,这似乎不会影响 QComboBox 内的 QListView。

在此处输入图像描述

在此处输入图像描述

上图中,您可以看到选定的线型在被选中时会正确放大,但是在使用下拉菜单时,那里显示的图标大小不正确。我无法弄清楚如何在不改变图像文件的实际大小的情况下改变它们的大小。

下面是我的自定义 QComboBox 的代码。我想弄清楚如何更改下拉菜单中图标的大小。我想我必须更改 QListView 的一些子控件,但我无法弄清楚。有人知道怎么做这个吗?

self.fitstyle_linestyle_cbox = QComboBox()
self.fitstyle_linestyle_cbox.setObjectName('linestylecbox')
self.fitstyle_linestyle_cbox.setFixedSize(75, 25)
self.linestyle_cbox_item_solid = QPixmap(str(self.dotgui_path) + '/DotGUI/GUIassets/linestyle_edit_solid.png')
self.linestyle_cbox_item_dashed = QPixmap(str(self.dotgui_path) + '/DotGUI/GUIassets/linestyle_edit.png')
self.linestyle_cbox_item_dotted = QPixmap(str(self.dotgui_path) + '/DotGUI/GUIassets/linestyle_edit_dotted.png')
self.fitstyle_linestyle_cbox.addItem(QIcon(self.linestyle_cbox_item_solid), '')
self.fitstyle_linestyle_cbox.addItem(QIcon(self.linestyle_cbox_item_dashed), '')
self.fitstyle_linestyle_cbox.addItem(QIcon(self.linestyle_cbox_item_dotted), '')
self.fitstyle_linestyle_cbox.setIconSize(QSize(75, 25))
self.fitstyle_linestyle_cbox.setStyleSheet('''
    QComboBox#linestylecbox 
        {
            background-color: ''' + GlobalVars.color_bkgnd_dark + ''';
            color: ''' + GlobalVars.color_text_dark + ''';
            font: 10px Lucida Sans;
            border: 0px solid ''' + GlobalVars.color_bkgnd_dark + ''';
            margin: 0px;
        }

    QComboBox#linestylecbox::drop-down 
        {
            border: 0px;
            border-top: 0px;
            border-color: ''' + GlobalVars.color_bkgnd_dark + ''';
            background-color: ''' + GlobalVars.color_bkgnd_dark + ''';
            font: 10px Lucida Sans;
        }

    QComboBox#linestylecbox::down-arrow 
        {
            image: url( ''' + str(self.dotgui_path) + '''/DotGUI/GUIassets/down-arrow.png);
            width: 10px;
            height: 10px;
            border: 0px;
        }

    QListView
        {
            background-color: ''' + GlobalVars.color_bkgnd_light + ''';
        }
    ''')

标签: pythonpython-3.xpyqt5qcombobox

解决方案


推荐阅读