Qt qml中的组合框样式
我想做一个好看的组合框。我用这个作为背景。这是我的密码:Qt qml中的组合框样式,qt,qml,Qt,Qml,我想做一个好看的组合框。我用这个作为背景。这是我的密码: import QtQuick 2.0 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import QtQuick.Controls.Private 1.0 ComboBox { id: box currentIndex: 2 activeFocusOnPress: true style: ComboBoxStyle {
import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Controls.Private 1.0
ComboBox
{
id: box
currentIndex: 2
activeFocusOnPress: true
style: ComboBoxStyle {
id: comboBox
background: Rectangle {
id: rectCategory
color: "transparent"
border.width: 1
border.color: "white"
radius: 15
}
label: Text {
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.pointSize: 15
font.family: "Courier"
font.capitalization: Font.SmallCaps
color: "white"
text: control.currentText
}
// drop-down customization here
property Component __dropDownStyle: MenuStyle {
__maxPopupHeight: 600
__menuItemType: "comboboxitem"
frame: Rectangle { // background
color: "green"
border.width: 1
border.color: "white"
radius: 15
}
padding.top: 12
padding.bottom: 12
itemDelegate.label: // an item text
Text
{
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.pointSize: 15
font.family: "Courier"
font.capitalization: Font.SmallCaps
color: "white"
text: styleData.text
}
itemDelegate.background: Rectangle { // selection of an item
radius: 5
color: styleData.selected ? "#1fcecb" : "transparent"
}
__scrollerStyle: ScrollViewStyle { }
}
property Component __popupStyle: Style {
property int __maxPopupHeight: 400
property int submenuOverlap: 100
property Component menuItemPanel: Text {
text: "NOT IMPLEMENTED"
color: "red"
font {
pixelSize: 14
bold: true
}
}
property Component __scrollerStyle: null
}
}
model: ListModel {
id: cbItems
ListElement { text: "Banana" }
ListElement { text: "Apple" }
ListElement { text: "Coconut" }
}
width: 200
}
结果如下
现在我有几个问题:
- 如何去除白色角落?我希望所有的角落都是圆的
- 如何去除大矩形下的阴影?右下角
- 是否有可能在下拉菜单和上面的文本矩形之间留一个间隙
组合框
,2)在自定义中使用私有API,这总是不好的,即使是像快速控件这样的“死”模块。@BaCaRoZzo我的项目正在使用qt 5.6。有没有办法使用Qt5.6中的控件的第二个版本,或者我应该移动到5.7?我只是没有时间移动,如果有任何方法可以解决我的问题,使用第1版的控制,这将是伟大的!好的,这取决于你的要求。新控件可在5.6中用作“实验室控件”,请参阅。这个版本并不是最终版本,但我发现它已经从bug中变得非常完美。如果您没有具体的约束条件,我会选择5.7,但请注意1)放弃对Android<4.1的支持,2)放弃对iOS<7的支持,3)放弃对编译器不完全支持C++11的平台的支持(请参阅。至于解决问题,嗯,在最初回答时,我确实花了几分钟试图解决问题。你可以检查原始样式。我已经从那里开始写我的其他答案。我想说,试图解决这个问题所花费的时间超过了移植项目所需的时间。我的两分钱。是我们需要使用QtQuick.Controls 1.x而不是2.0。只是,也许从一开始就专注于新的/更好的技术会更好,而不是先用过时的东西使一切变得完美,然后再扔掉……如果需要1.x-好的。首先,1)在自定义中自定义新的组合框
和2)您使用的私有API总是不好的,即使是像快速控件这样的“死”模块。@BaCaRoZzo我的项目正在使用qt 5.6。有没有办法使用Qt5.6中的控件的第二个版本,或者我应该移动到5.7?我只是没有时间移动,如果有任何方法可以解决我的问题,使用第1版的控制,这将是伟大的!好的,这取决于你的要求。新控件可在5.6中用作“实验室控件”,请参阅。这个版本并不是最终版本,但我发现它已经从bug中变得非常完美。如果您没有具体的约束条件,我会选择5.7,但请注意1)放弃对Android<4.1的支持,2)放弃对iOS<7的支持,3)放弃对编译器不完全支持C++11的平台的支持(请参阅。至于解决问题,嗯,在最初回答时,我确实花了几分钟试图解决问题。你可以检查原始样式。我从那里开始写我的其他答案。我想说,试图解决这个问题所花费的时间超过了移植项目所需的时间。我的两分钱。