提问人:Foaly 提问时间:5/8/2023 更新时间:6/1/2023 访问量:92
QML ComboBox打破了深色模式窗口样式
QML ComboBox breaks dark mode window styling
问:
我在与QML ComboBox相关的Windows上的暗模式中遇到了一个非常奇怪的问题。我在 Windows 11 上使用 Qt 6.5.0 和 MinGW 11.2.0。
我遇到的问题是,一旦我将 ComboBox 添加到场景中,深色模式样式自动检测就会中断。
以以下最小示例为例:
import QtQuick
import QtQuick.Controls
ApplicationWindow {
width: 800
height: 600
visible: true
menuBar: MenuBar {
Menu {
title: qsTr("File")
Action {
text: qsTr("&Quit")
shortcut: StandardKey.Quit
onTriggered: Qt.quit();
}
}
}
Rectangle {
anchors.fill: parent
color: "darkred"
}
// ComboBox {
// model: ["First", "Second", "Third"]
// }
}
Everthing 看起来不错,菜单的样式符合系统设置。它们被设置为深色模式。
一旦我取消对上面示例中 ComboBox 元素的注释,样式就会中断,菜单就会回到浅色模式......是我在这里做错了什么,还是这是一个Qt错误?如果有人有一些信息,将不胜感激:)
答:
0赞
surge10
5/9/2023
#1
您应该考虑使用通用样式,这是使用 Windows 通用样式的更具体的方法
import QtQuick.Controls.Universal
ApplicationWindow {
width: 800
height: 600
visible: true
Universal.theme: Universal.Dark
menuBar: MenuBar {
Menu {
title: qsTr("File")
Action {
text: qsTr("&Quit")
shortcut: StandardKey.Quit
onTriggered: Qt.quit();
}
}
}
Rectangle {
anchors.fill: parent
color: "darkred"
}
ComboBox {
model: ["First", "Second", "Third"]
}
}
评论
0赞
Foaly
5/9/2023
确实如此。但是,为什么要使用“通用”主题而不是“Windows”主题呢?这种行为仍然感觉像是,但对我来说......
1赞
Foaly
6/1/2023
#2
这是一个Qt错误,现在已修复:)
评论