我有以下最小示例,其中有一个按钮,可触发带有文本区域的对话框。虚拟键盘在屏幕上正确显示,但按钮不可点击
import os
import os
from PySide6.QtWidgets import QApplication, QMainWindow, QTextEdit
from PySide6.QtWidgets import QVBoxLayout, QDialog, QPushButton
def trigger():
dlg = QDialog()
text_edit = QTextEdit()
layout = QVBoxLayout()
layout.addWidget(text_edit)
dlg.setLayout(layout)
dlg.exec()
os.environ["QT_IM_MODULE"] = "qtvirtualkeyboard"
app = QApplication([])
btn = QPushButton('Trigger')
btn.clicked.connect(lambda: trigger())
window = QMainWindow()
window.setCentralWidget(btn)
window.show()
app.exec()
如果我删除对话框并QTextArea
直接将其设置为,QMainWindow
它就可以正常工作。有人知道如何让它工作吗?
使用 打开对话框
exec
会阻塞,因此您应改用open
。这可能意味着您需要保留对对话框的引用,因为会open
立即返回。