Qt.FramelessWindowHint 无法在 QInputDialog 上工作

Qt.FramelessWindowHint not working on QInputDialog

我正在学习 PySide6,我正在尝试创建一个无框架的 QInputDialog。

当我设置时:

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


app = QApplication()

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

app.exec()

框架仍然出现。为什么?

getText 方法是静态的,所以 input_dialog 不是显示的 window 而是在内部创建了一个 QInputDialog 实例,所以你必须通过方法传递标志:

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

app = QApplication()

text, ok = QInputDialog.getText(
    None, "input dialog", "Is this ok?", flags=Qt.FramelessWindowHint
)
if ok:
    print(text)