我的问题是一个两部分的条件问题。我有一个用 C++/Qt 编写的桌面应用程序。在应用程序中,我有几个要装饰的列表,并添加带有图标和富文本的列表项。
我第一次尝试在 QWidget 世界中做到这一点,但我越是研究它,我就越认为 QML 可能是一个更好的选择。但现在我也想知道这一点,因为 QML 似乎更适合触摸屏设备。更不用说我在 QML 方面的进展令人沮丧。在下面给他们QML,我不知道如何:(1)当我点击一个项目时突出显示它,(2)添加一个滚动条:
import QtQuick 1.0
Item
{
width: 300
height: 200
ListModel
{
id: myModel2
ListElement { text: "List Item 1" }
ListElement { text: "List Item 2" }
ListElement { text: "List Item 3" }
ListElement { text: "List Item 4" }
ListElement { text: "List Item 5" }
ListElement { text: "List Item 6" }
}
Component
{
id: beerDelegate
Rectangle
{
id: beerDelegateRectangle
height: beerDelegateText.height * 1.5
width: parent.width
Text
{
id: beerDelegateText
text: "<b>" + modelData + "</b> <i>(" + modelData + ")</i>"
}
MouseArea
{
anchors.fill: parent
onClicked:
{
console.log("clicked: " + modelData + " at index: " + index);
beerList.currentIndex = index;
}
}
}
}
ListView
{
id: beerList
anchors.fill: parent
model: myModel2
delegate: beerDelegate
highlightFollowsCurrentItem: true
highlight: Rectangle
{
width: parent.width
color: "red"
}
focus: true
}
}
鉴于此 QML,我如何完成我正在寻找的东西?或者在 QWidget 桌面应用程序中使用 QML 只是一个坏主意?