Tenho o seguinte exemplo mínimo com um botão que dispara um diálogo com uma área de texto. O teclado virtual está aparecendo corretamente na tela, mas os botões não são clicáveis
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()
Se eu remover o diálogo e definir o QTextArea
diretamente para QMainWindow
o funciona perfeitamente. Alguém sabe como fazer funcionar?
Abrir o diálogo com
exec
will block, então você deve usaropen
instead. Isso pode significar que você precisa manter uma referência ao diálogo, poisopen
retorna imediatamente.