You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySide6中QInputDialog设置Qt.FramelessWindowHint不生效是什么原因?

原因说明

你设置的Qt.FramelessWindowHint不生效的核心原因是QInputDialog.getText()是类静态方法,该方法运行时会在内部创建一个全新的QInputDialog实例,你提前实例化并配置了无框属性的input_dialog对象完全没有被调用,自然配置不会生效。

修复方案

方案1:手动配置自定义实例,不使用静态方法

from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QInputDialog, QMainWindow

app = QApplication()
# 实例化时设置无框标志
input_dialog = QInputDialog(flags=Qt.FramelessWindowHint)
# 手动配置对话框参数
input_dialog.setWindowTitle('input dialog')
input_dialog.setLabelText('Is this ok?')
# 执行对话框获取结果
ok = input_dialog.exec()
text = input_dialog.textValue()
if ok:
    print(text)
app.exec()

方案2:静态方法调用时直接传入标志位参数

getText方法支持在调用时通过最后一个参数传入窗口标志,无需提前实例化对象:

from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QInputDialog, QMainWindow

app = QApplication()
text, ok = QInputDialog.getText(QMainWindow(), 'input dialog', 'Is this ok?', flags=Qt.FramelessWindowHint)
if ok:
    print(text)
app.exec()

以上两种方案都可以实现无框的QInputDialog效果。

内容的提问来源于stack exchange,提问作者Filippo Boido

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:27:01