记录一个QDialogButtonBox使用的坑,不能直接self.psw_ui.buttonBox.accepted.connect(XXX)
XXX里面不能直接加动作,需要另做一个函数才可以。如果直接加动作,将直接触发accepted与rejected的动作。
以下代码不可以直接使用...
class UIUI():
# 先导入.ui文件,然后关闭
def __init__(self):
super().__init__()
# 加载UI文件
self.psw_ui = QUiLoader().load("psw_box.ui")
self.ui = QUiLoader().load("ftp_server.ui") # 主界面对象
self.ui.checkBox.clicked.connect(self.psw_box)
def psw_box(self):
if self.ui.checkBox.isChecked():
self.psw_ui.show()
self.psw_ui.buttonBox.accepted.connect(self.psw_yes)
self.psw_ui.buttonBox.rejected.connect(self.psw_no)
else:
pass
def psw_yes(self):
self.username = self.psw_ui.lineEdit.text()
self.ftp_psw = self.psw_ui.lineEdit_2.text()
if self.username is None or self.username == "":
inf("用户名不能为空!")
elif self.ftp_psw is None or self.ftp_psw == "":
inf("密码不能为空!")
else:
self.psw_ui.close()
def psw_no(self):
self.ui.checkBox.setChecked(False)
self.psw_ui.close()
class inf(QWidget):
def __init__(self, text):
super().__init__()
self.im = QMessageBox.information(self, "提示:", text)