找回密码
 立即注册
收起左侧

怎样自定义Combobox

2
回复
5667
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2015-6-4 16:50:22 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请问怎样实现带背景图片combobox?
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2015-6-5 08:36:57 显示全部楼层
  1. import QtQuick 2.3
  2. import QtQuick.Controls 1.3
  3. import QtQuick.Controls.Styles 1.3

  4. Item {
  5.     id: root
  6.     width: 200
  7.     height: 50

  8.     property alias comboBoxModel: combx.model
  9.     property alias comboBoxStyleBackground: m_comboBoxStyle
  10.     property alias dropDownMenuStyleframe: m_dropDownMenuStyleFrame
  11.     signal indexChanged()
  12.     property alias currentIndex: combx.currentIndex
  13.     property alias currentText: combx.currentText

  14.     Rectangle {
  15.         id: m_dropDownMenuStyleFrame
  16.     }

  17.     Rectangle {
  18.         id: m_comboBoxStyle
  19.     }

  20.     ComboBox {
  21.         id: combx
  22.         model: ListModel {
  23.             id: cbItems
  24.             ListElement { }
  25.             ListElement { }
  26.             ListElement { }
  27.             ListElement { }
  28.         }
  29.         width: 200
  30.         height: 50
  31.         style: ComboBoxStyle {
  32.             id: comboBoxStyle
  33.             background: m_comboBoxStyle
  34.             label: Text {
  35.                 color: "black"
  36.                 width: 200
  37.                 height: 50
  38.                 text: control.currentText
  39.             }

  40.             __dropDownStyle: MenuStyle {
  41.                 id: dropDownMenuStyle
  42.                 frame: dropDownMenuStyleFrame
  43.                 itemDelegate.label: Text {
  44.                     width:200
  45.                     height: 50
  46.                     color: styleData.selected ? "blue" : "black"
  47.                     text: styleData.text
  48.                 }

  49.                 itemDelegate.background: Rectangle {
  50.                     z: 1
  51.                     opacity: 0.5
  52.                     color: styleData.selected ? "darkGray" : "transparent"
  53.                 }
  54.             }
  55.         }
  56.         onCurrentIndexChanged: {
  57.             root.indexChanged()
  58.         }
  59.     }
  60. }
复制代码
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2015-6-5 08:39:34 显示全部楼层
请问
在其他.qml中使用以上代码的时候,
给dropDownMenuStyleframe赋值时会出现
Invalid property assignment: "dropDownMenuStyleframe" is a read-only property
为什么,怎么解决呢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了