PyQt5 QCoreApplication :: exe c: событие l oop уже выполняет ошибку при использовании input () - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь использовать PyQt5 с программой, которую я уже написал. Я пытался найти решение, но я не совсем понимаю, так как эта проблема кажется более простой, чем другие, на которые я смотрел. Проблема, с которой я сталкиваюсь, заключается в том, что когда я подключаю функцию к моей кнопке, которая вызывает функцию, которая использует input (), я получаю бесконечное l oop: 'QCoreApplication :: exe c: событие l oop уже запущен », когда я нажимаю эту кнопку. Если я делаю что-то еще в функции, например print (), она работает просто отлично. Я использую код по умолчанию, который был сгенерирован Qt Designer. Заранее спасибо.

from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(576, 443)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.deposit_button = QtWidgets.QPushButton(self.centralwidget)
        self.deposit_button.setGeometry(QtCore.QRect(90, 250, 101, 61))
        self.deposit_button.setObjectName("deposit_button")
        self.withdrawal_button = QtWidgets.QPushButton(self.centralwidget)
        self.withdrawal_button.setGeometry(QtCore.QRect(380, 250, 101, 61))
        self.withdrawal_button.setObjectName("withdrawal_button")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 576, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.deposit_button.setText(_translate("MainWindow", "Enter Deposit"))
        #this is the button that is being clicked
        self.deposit_button.clicked.connect(self.clicked)
        self.withdrawal_button.setText(_translate("MainWindow", "Enter Withdrawal"))

    def clicked(self):
        button_click()

# this causes the problem, if I just print something, it works fine
def button_click():
    input('enter input: ')

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
...