Вот код:
from generator import *
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
class MyWindow(QMainWindow):
def __init__(self):
super(MyWindow,self).__init__()
self.initUI()
def button_clicked(self):
self.label.setText(make_pass())
def initUI(self):
self.setGeometry(200, 200, 300, 300)
self.setWindowTitle('Random password generator')
self.label = QtWidgets.QLabel(self)
self.label.setText('')
self.label.move(50,50)
self.b1 = QtWidgets.QPushButton(self)
self.b1.setText('Make password')
self.b1.clicked.connect(self.button_clicked)
def update(self):
self.label.adjustSize()
def window():
app = QApplication(sys.argv)
win = MyWindow()
win.show()
sys.exit(app.exec_())
window()
Функция make_pass () возвращает строку, переменную с именем password.
def make_pass():
for i in range(6):
n = random.randint(0, 100)
if n % 2 == 0:
letters_list.append(random_letter(letters).lower())
elif n % 2 != 0:
letters_list.append(random_letter(letters).upper())
for i in range(3):
nums_list.append(random_number())
for i in range(2):
syms_list.append(random_symbol(syms))
l = ''.join(letters_list)
n = ''.join(nums_list)
s = ''.join(syms_list)
global password
password = l, n, s
password = ''.join(password)
pass_list = list(password)
random.shuffle(pass_list)
password = ''.join(pass_list)
return password
Когда я запускаю ее и нажимаю кнопку генерации, она показывает этикетку с паролем. Когда я запускаю его снова, он объединяет предыдущий пароль с новым и показывает его на одной метке. Я хочу, чтобы после того, как я сгенерировал пароль, а затем новый, предыдущий был удален и освободил место для нового.
Вот как выглядит проблема:
Вместо этого всегда должна быть одна строка из 11 символов