Pyqt5 и боты, передать вводимую информацию в переменую
Решил поставить своего бота для варкрафта на GUI.
Я создал интерфейс через Qt Designer и преобразовал его в пайтон код.
Теперь проблема.
На срине представлен мой бот (сейчас только картинка гуи)
и мне нужно передать вводимую информацию в переменую user_info
Как это сделать?
Весь код GUI:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(349, 471)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.buttonspel = QtWidgets.QLabel(self.centralwidget)
self.buttonspel.setGeometry(QtCore.QRect(10, 280, 121, 21))
self.buttonspel.setObjectName("buttonspel")
self.xhekpail = QtWidgets.QRadioButton(self.centralwidget)
self.xhekpail.setGeometry(QtCore.QRect(10, 240, 211, 21))
self.xhekpail.setObjectName("xhekpail")
self.start = QtWidgets.QPushButton(self.centralwidget)
self.start.setGeometry(QtCore.QRect(10, 310, 321, 61))
self.start.setObjectName("start")
self.buttonspel1 = QtWidgets.QKeySequenceEdit(self.centralwidget)
self.buttonspel1.setGeometry(QtCore.QRect(130, 280, 81, 20))
self.buttonspel1.setObjectName("buttonspel1")
self.Lenbot = QtWidgets.QLabel(self.centralwidget)
self.Lenbot.setGeometry(QtCore.QRect(10, 10, 281, 111))
self.Lenbot.setObjectName("Lenbot")
self.dushnim = QtWidgets.QLabel(self.centralwidget)
self.dushnim.setGeometry(QtCore.QRect(20, 110, 291, 91))
self.dushnim.setObjectName("dushnim")
self.prochital = QtWidgets.QRadioButton(self.centralwidget)
self.prochital.setGeometry(QtCore.QRect(10, 200, 82, 17))
self.prochital.setObjectName("prochital")
self.git = QtWidgets.QLabel(self.centralwidget)
self.git.setGeometry(QtCore.QRect(10, 380, 291, 21))
self.git.setObjectName("git")
self.giturl = QtWidgets.QLabel(self.centralwidget)
self.giturl.setGeometry(QtCore.QRect(10, 405, 221, 31))
self.giturl.setObjectName("giturl")
self.OBIZATELNO = QtWidgets.QLabel(self.centralwidget)
self.OBIZATELNO.setGeometry(QtCore.QRect(220, 280, 81, 16))
self.OBIZATELNO.setObjectName("OBIZATELNO")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 349, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.add_functions()
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Len.bot"))
self.buttonspel.setText(_translate("MainWindow", "введите кнопку спэла"))
self.xhekpail.setText(_translate("MainWindow", " посмотреть что будер рыспылено"))
self.start.setText(_translate("MainWindow", "СТАРТ"))
self.Lenbot.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-weight:600; font-style:italic;\">Len.bot - новый бот, который упрощает гейм-</span></p><p align=\"center\"><span style=\" font-weight:600; font-style:italic;\">плей нашей любимой игры.</span></p><p align=\"center\"><span style=\" font-weight:600; font-style:italic;\">Зачем нам делать нудное дело самим,</span></p><p align=\"center\"><span style=\" font-weight:600; font-style:italic;\">если есть этот бот?</span></p></body></html>" ))
self.dushnim.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:10pt; font-style:italic;\">немного подушним,</span></p><p align=\"center\"><span style=\" font-size:10pt; font-style:italic;\">обязательно прочитай инструкцию,</span></p><p align=\"center\"><span style=\" font-size:10pt; font-style:italic;\">она лежит в папке с ботом</span></p></body></html>"))
self.prochital.setText(_translate("MainWindow", "прочитал?????????"))
self.git.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; font-style:italic;\">мой гитхаб-</span></p><p><span style=\" font-size:12pt;\"><br/></span></p></body></html>"))
self.giturl.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:10pt; font-weight:600;\">https://github.com/Lennet8002</span></p></body></html>"))
self.OBIZATELNO.setText(_translate("MainWindow", "ОБЯЗАТЕЛЬНО!"))
def add_functions(self):
self.xhekpail.clicked.connect(self.pail_chek) #запомнить 25минут
self.start.clicked.connect(self.start_chek)
self.buttonspel.
def pail_chek(self):
user_info = "yes"
def start_chek(self):
start = "enter"
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_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный Qt Designer, НИКОГДА.
Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(349, 471)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.buttonspel = QtWidgets.QLabel(self.centralwidget)
self.buttonspel.setGeometry(QtCore.QRect(10, 280, 121, 21))
self.buttonspel.setObjectName("buttonspel")
self.xhekpail = QtWidgets.QRadioButton(self.centralwidget)
self.xhekpail.setGeometry(QtCore.QRect(10, 240, 211, 21))
self.xhekpail.setObjectName("xhekpail")
self.start = QtWidgets.QPushButton(self.centralwidget)
self.start.setGeometry(QtCore.QRect(10, 310, 321, 61))
self.start.setObjectName("start")
self.buttonspel1 = QtWidgets.QKeySequenceEdit(self.centralwidget)
self.buttonspel1.setGeometry(QtCore.QRect(130, 280, 81, 20))
self.buttonspel1.setObjectName("buttonspel1")
self.Lenbot = QtWidgets.QLabel(self.centralwidget)
self.Lenbot.setGeometry(QtCore.QRect(10, 10, 281, 111))
self.Lenbot.setObjectName("Lenbot")
self.dushnim = QtWidgets.QLabel(self.centralwidget)
self.dushnim.setGeometry(QtCore.QRect(20, 110, 291, 91))
self.dushnim.setObjectName("dushnim")
self.prochital = QtWidgets.QRadioButton(self.centralwidget)
self.prochital.setGeometry(QtCore.QRect(10, 200, 82, 17))
self.prochital.setObjectName("prochital")
self.git = QtWidgets.QLabel(self.centralwidget)
self.git.setGeometry(QtCore.QRect(10, 380, 291, 21))
self.git.setObjectName("git")
self.giturl = QtWidgets.QLabel(self.centralwidget)
self.giturl.setGeometry(QtCore.QRect(10, 405, 221, 31))
self.giturl.setObjectName("giturl")
self.OBIZATELNO = QtWidgets.QLabel(self.centralwidget)
self.OBIZATELNO.setGeometry(QtCore.QRect(220, 280, 81, 16))
self.OBIZATELNO.setObjectName("OBIZATELNO")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 349, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
# ? self.add_functions()
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Len.bot"))
self.buttonspel.setText(_translate("MainWindow", "введите кнопку спэла"))
self.xhekpail.setText(_translate("MainWindow", " посмотреть что будер рыспылено"))
self.start.setText(_translate("MainWindow", "СТАРТ"))
self.Lenbot.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-weight:600; font-style:italic;\">Len.bot - новый бот, который упрощает гейм-</span></p><p align=\"center\"><span style=\" font-weight:600; font-style:italic;\">плей нашей любимой игры.</span></p><p align=\"center\"><span style=\" font-weight:600; font-style:italic;\">Зачем нам делать нудное дело самим,</span></p><p align=\"center\"><span style=\" font-weight:600; font-style:italic;\">если есть этот бот?</span></p></body></html>" ))
self.dushnim.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:10pt; font-style:italic;\">немного подушним,</span></p><p align=\"center\"><span style=\" font-size:10pt; font-style:italic;\">обязательно прочитай инструкцию,</span></p><p align=\"center\"><span style=\" font-size:10pt; font-style:italic;\">она лежит в папке с ботом</span></p></body></html>"))
self.prochital.setText(_translate("MainWindow", "прочитал?????????"))
self.git.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600; font-style:italic;\">мой гитхаб-</span></p><p><span style=\" font-size:12pt;\"><br/></span></p></body></html>"))
self.giturl.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:10pt; font-weight:600;\">https://github.com/Lennet8002</span></p></body></html>"))
self.OBIZATELNO.setText(_translate("MainWindow", "ОБЯЗАТЕЛЬНО!"))
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): # +++
def __init__(self): # +++
super().__init__() # +++
self.setupUi(self) # +++
# !!! Тут ваша логика
# +++
self._start = None # +++
self._user_info = None # +++
self._str_value = None # +++
#? self.xhekpail.clicked.connect(self.pail_chek) # запомнить 25мин ?
# +++
self.buttonGroup = QtWidgets.QButtonGroup() # +++
self.buttonGroup.addButton(self.prochital) # +++
self.buttonGroup.addButton(self.xhekpail) # +++
self.buttonGroup.buttonClicked.connect(
self.check_button) # +++
self.start.clicked.connect(self.start_chek)
#? self.buttonspel
# def pail_chek(self):
# +++
def check_button(self, radioButton): # +++
self._user_info = radioButton.text() #? "yes"
print(f'\ndef pail_chek(self): {self._user_info}') #
def start_chek(self):
self._str_value = self.buttonspel1.keySequence().toString() # +++
print(f'\ndef start_chek(self): {self._str_value}') #
self._start = "enter" #?
print(f'def start_chek(self): {self._start}') #
print(f'def start_chek(self): {self._user_info}') #
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow() # !!!
w.show() # !!!
sys.exit(app.exec())