我有一个用QtCreator编写的Qt QML应用程序,我想添加一个按钮,使用户能够切换窗口标志“ StayOnTop”。我不是在寻找有关如何创建按钮和所有爵士乐的细节,我只是在寻求有关执行窗口标志切换功能的帮助。我知道如何在Python / Pyside中做到这一点,但不知道QML C ++。
例如,如何将其转换为我的qml应用程序?
def toggle_stay_on_top(self):
if self.stayOpTopAct.isChecked():
# enabled
self.setWindowFlags(self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
else:
# disable
self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
我尝试使用它,但是标题栏和最小/最大/关闭按钮消失了。
flags: Settings.stayOnTop ? flags | Qt.WindowStaysOnTopHint : flags & ~Qt.WindowStaysOnTopHint
答案 0 :(得分:0)
在您的QML文件中使用Window
。您可以使用属性flags
。
Window {
id: root
flags: Qt.Tool // Just to check if the flag isn't removed
visible: true
width: 500
height: 500
Rectangle {
anchors.fill: parent
color: "red"
CheckBox {
id: stayOpTopAct
text: "Stay on top"
onCheckStateChanged: {
if(checked)
root.flags = root.flags | Qt.WindowStaysOnTopHint
else
root.flags = root.flags & ~Qt.WindowStaysOnTopHint
}
}
}
}