Как удалить или удалить Qlabel в PYQT5 - PullRequest
0 голосов
/ 17 июня 2020

Вот код:

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

Когда я запускаю ее и нажимаю кнопку генерации, она показывает этикетку с паролем. Когда я запускаю его снова, он объединяет предыдущий пароль с новым и показывает его на одной метке. Я хочу, чтобы после того, как я сгенерировал пароль, а затем новый, предыдущий был удален и освободил место для нового.

Вот как выглядит проблема:

strings just add up

Вместо этого всегда должна быть одна строка из 11 символов

...