ZBLOG

QString comboBoxStyle = QString( "QComboBox {" " border: 1px solid rgb(102, 138, 222);" " border-radius: 4px;" " padding: 5px;" " background-color: white;" "}" "QComboBox::drop-d...

在 Qt 的样式表中,要实现选项中的 item 之间有间距,可以考虑通过以下方法进行调整:

  1. 使用 padding:你可以在每个 item 中设置内边距 (padding),但这样会影响到每个 item’s 内容与边框的距离,而不会影响到 item 之间的距离。

  2. 使用分隔符:如果你想要在 item 之间增加视觉上的间距,通常推荐的方法是在 item 的内容中加入额外的空白项(例如一个仅包含空格或换行符的项),但是这不是很优雅。

  3. 利用 QListView::itemSpacing 属性:这是一个更合适的方法,但请注意,这需要在样式表中直接定义,或者通过代码动态设置。这可以为视图中的项目提供空间。

这里是如何设置 QComboBox 的 item 间距的示例:

QString comboBoxStyle = QString(
    "QComboBox {"
    "    border: 1px solid rgb(102, 138, 222);"
    "    border-radius: 4px;"
    "    padding: 5px;"
    "    background-color: white;"
    "}"

    "QComboBox::drop-down {"
    "   subcontrol-origin: padding;"
    "   subcontrol-position: right center;"
    "   width: 20px;"
    "   border-left: 1px solid rgb(102, 138, 222);"
    "}"

// 自定义下拉箭头图标(可选)
//"QComboBox::down-arrow {"
//"   image: url(:/path/to/arrow.png);"
//"}"

"QComboBox QAbstractItemView::item {"
"     height: 40px;"                // 每一项固定高度
"     padding-top: 10px;"           // 项目顶部内边距
"     padding-bottom: 10px;"        // 项目底部内边距
"     margin-bottom: 5px;"          // 增加每个项目底部的间隔
"}"

"QComboBox QAbstractItemView {"
"   border: 1px solid rgb(102, 138, 222);"
"   background-color: white;"
"   selection-background-color: #f5f7fa;"
"   selection-color: #409eff;"
"}");

注意事项:

  • margin 属性可能无法直接用于某些视图元素,因此如果你发现它不起作用,可以考虑其他策略,如自定义模型。
  • 在实际应用中,如果你的需求较为复杂,建议创建自定义 QWidget 或 QListView 来更好地控制展示效果。


    内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22194

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?