gpt4 book ai didi

python - 防止 okay QPushButton 在按回车时接受对话框

转载 作者:太空宇宙 更新时间:2023-11-04 00:39:54 27 4
gpt4 key购买 nike

在下面的代码中,对话框的 Ok 按钮似乎始终处于焦点状态,因此当按下 enter 时,对话框被接受并关闭。我的目标是让用户在行编辑中编辑文本,然后在完成处理文本(editingFinished 信号)时允许按回车键。但是,这会触发接受对话框的“确定”按钮。有没有办法在不子类化对话框的情况下禁用它?

from PyQt5 import QtWidgets
import sys

app = QtWidgets.QApplication(sys.argv)

widget = QtWidgets.QWidget()
dbutton = QtWidgets.QPushButton("Show Dialog", widget)

dialog = QtWidgets.QDialog(None)
vlay = QtWidgets.QVBoxLayout(dialog)
form = QtWidgets.QFormLayout(None)
vlay.addLayout(form)

form.addRow("Text Input", QtWidgets.QLineEdit())
form.addRow("Float Input", QtWidgets.QSpinBox())

ok = QtWidgets.QPushButton("Ok")
cancel = QtWidgets.QPushButton("Cancel")
hlay = QtWidgets.QHBoxLayout()
hlay.addWidget(ok)
hlay.addWidget(cancel)
vlay.addLayout(hlay)
ok.clicked.connect(dialog.accept)
cancel.clicked.connect(dialog.reject)

dbutton.clicked.connect(dialog.exec_)
widget.show()

app.exec_()

最佳答案

您必须更改 auto default两个按钮上的设置:

ok = QtWidgets.QPushButton("Ok")
ok.setAutoDefault(False)
cancel = QtWidgets.QPushButton("Cancel")
cancel.setAutoDefault(False)

关于python - 防止 okay QPushButton 在按回车时接受对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42306835/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com