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
解决方案
Window
在您的 QML 文件中使用 a 。有一个属性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
}
}
}
}
推荐阅读
- r - 使用 R 包时间线生成时间线
- c - 相同的功能有不同的表现,为什么?
- javascript - 我想使用 beautiful-dnd 交换 2x2 矩阵元素,但是当我将它们映射时,它会生成 2 个列
- node.js - 在没有库的情况下使用 nodeJS 解析 CSV 字符串
- html - 如何修复我的 div 位移对齐?
- javascript - 无法读取 null 的属性“insertAdjacentHTML”
- jquery - Laravel - 在 AJAX 响应中返回 2 个视图
- pandas - 如果 pandas 包含我要替换的字符串的一部分,我该如何更改它的列值?
- python - 如何模拟一个类并为每组构造函数参数提供一个唯一的对象?
- javascript - 在鼠标移开之前使元素不与其他元素一起移动