PyQt6中setWindowFlags等效用法是什么?Qt.WindowStaysOnTopHint报错如何解决?
PyQt6 窗口置顶设置等效实现
错误原因
PyQt6 重构了 Qt 命名空间的枚举结构,所有原顶层枚举值都被移动到了对应的嵌套枚举类中,WindowStaysOnTopHint 不再直接归属 Qt 顶层命名空间。
你遇到的报错正是枚举路径不匹配导致的:
AttributeError: type object 'Qt' has no attribute 'WindowStaysOnTopHint'
修正代码
将原代码中的枚举值替换为 Qt.WindowType.WindowStaysOnTopHint 即可:
self.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
同类问题迁移规则
所有窗口相关的标志枚举在 PyQt6 中都归属 Qt.WindowType,如果需要同时设置多个窗口标志,仍然可以使用位或运算符拼接,示例:
# 同时设置窗口置顶 + 无边框 self.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint | Qt.WindowType.FramelessWindowHint)
内容的提问来源于stack exchange,提问作者fur1ous
相关产品推荐
相关产品推荐

