Python PyQt5无法获取setPlaintext()/toPlainText(),因为按下按钮会导致崩溃

2024-09-29 23:17:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在pyqt5中为密码设计了一个GUI,现在我正在尝试集成代码。我在加密和解密显示的消息时遇到问题。在

我希望它获取一个文本框的内容,并通过加密/解密运行它,然后在另一个文本框中显示它。当我按下任何一个按钮,它都会崩溃PythonW.exe没有响应“错误”。在

from PyQt5 import QtCore, QtGui, QtWidgets
import sys, random
import cipher ## Designed GUI

LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

class CipherDesign(QtWidgets.QMainWindow, cipher.Ui_MainWindow):
    def __init__(self, parent=None):
        super(CipherDesign, self).__init__(parent)
        self.setupUi(self)
        self.BGenerate.clicked.connect(self.generatekey) # Generate Button
        self.BSubmit.clicked.connect(self.submitkey) # Submit Button
        self.BEncrypt.clicked.connect(self.encrypt) # Encrypt Button
        self.BDecrypt.clicked.connect(self.decrypt) # Decrypt Button

    def generatekey(self):
        key = list(LETTERS)
        random.shuffle(key)
        self.keytext.setText(''.join(key))
        print (key) ##### DELETE ####

    def submitkey(self):
        submittedkey = self.keytext_2.text()
        mykey = submittedkey
        print (mykey) #### DELETE ####

    def encrypt(self, mykey, translated):
        return translatedMessage(key, translated, 'encrypt')

    def decrypt(self, mykey, translated):
        return translatedMessage(key, translated, 'decrypt')

    def translatedMessage(self, key, translated, mode):
        message = self.textencrypt.setPlainText()
        translated = ''
        self.textdecrypt.toPlainText(''.join(translated))
        charsA = LETTERS
        charsB = mykey

        if mode == 'decrypt':
            charsA, charsB = charsB, charsA

        for symbol in message:
            if symbol.upper() in charsA:
                symIndex = charsA.find(symbol.upper())
                if symbol.isupper():
                    translated += charsB[symIndex].upper()
                else:
                    translated += charsB[symIndex].lower()
            else:
                translated += symbol
        return translated

def main():
    app = QtWidgets.QApplication(sys.argv)
    form = CipherDesign()
    form.show()
    app.exec_()





if __name__ == "__main__":
    main()

不太清楚到底是什么错了。在

在Python.cy代码

^{pr2}$

Tags: keyimportselfifdefconnectbuttonsymbol

热门问题