Как привязать элементы графического интерфейса к коду?
Хочу из консольного приложения сделать приложение с графическим интерфейсом.
С помощью Qt Designer накидал дизайн, осталось настроить взаимодействие с кодом.
Как привязать lineEdit и lineEdit2 и кнопку Generate к моему коду?
import random
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication
Form, Window = uic.loadUiType("interface01.ui")
app = QApplication([])
window = Window()
form = Form()
form.setupUi(window)
window.show()
app.exec()
chars = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM123456789'
number = int(input('Количество паролей: ')) # Сюда привязать данные из lineEdit
lenght = int(input('Длина строки: ')) # Сюда привязать данные из lineEdit_2
for x in range(number):
password = ''
for i in range(lenght):
password += random.choice(chars) # Сюда привязать кнопку Generate
print(password)
file = open('password.txt', 'a')
file.write('\n' + password)
file.close()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Вы не предоставили модуль interface01.ui, почему?
Ваша задача может выглядеть примерно так:
import sys
import random
from PyQt5.Qt import *
#Form, Window = uic.loadUiType("interface01.ui")
class Window(QWidget):
def __init__(self):
super().__init__()
self.chars = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM123456789'
self.number = QLineEdit(placeholderText='Количество паролей')
self.lenght = QLineEdit(placeholderText='Длина строки')
self.label = QLabel()
self.pushButton = QPushButton("СГЕНЕРИРОВАТЬ ПАРОЛЬ", clicked=self.generate_password)
layout = QVBoxLayout(self)
layout.addWidget(self.number)
layout.addWidget(self.lenght)
layout.addWidget(self.label)
layout.addWidget(self.pushButton)
def generate_password(self):
if not self.number.text() or not self.lenght.text():
msg = QMessageBox.information(self,
'Внимание', 'Заполните входные данные.')
return
self.label.setText('')
for x in range(int(self.number.text())):
password = ''
for i in range(int(self.lenght.text())):
password += random.choice(self.chars) # Сюда привязать кнопку Generate
print(password)
self.label.setText(self.label.text() + f'{password}\n')
with open('password_1390800.txt', 'a') as file:
file.write(f'{password}\n')
if __name__ == "__main__":
app = QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())

