python - 在 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 + ''';
}
''')
解决方案
推荐阅读
- html - Fontawesome 不起作用,图标不显示
- html - CSS用许多相同的孩子完全填充容器
- regex - 正则表达式:在右侧第三个逗号的左侧插入双引号
- docker - 为什么 GitLab CI/CD 因多阶段 Dockerfile 而失败?
- html - 初学者坚持制作有效的 html 和 css 测验的任务
- servlets - web.xml中的/和/*有什么区别
- postgresql - docker pgadmin 中的 CSRF 令牌丢失错误
- php - 如何调试 PHP 错误“解析错误:语法错误,意外的 T_CLASS”
- c# - 您可以为 C# 版本添加预处理器指令吗?
- tableau-api - 有没有办法将筛选集应用于 Tableau 中的所有 ID?