QML切换窗口标志

时间:2019-07-18 12:04:45

标签: qt qml

我有一个用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

1 个答案:

答案 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
                }
        }
    }
}