首页 > 解决方案 > 我不能让窗户按我的意愿行事

问题描述

我想制作一个密码生成器应用程序。我这里有这段代码,但它不能正常工作。

我已经尝试了一些我在互联网上找到的解决方案,但它们都不起作用,它们都使用我不想使用的sys library 。

from PyQt5.QtWidgets import *
import random

app = QApplication([])
button = QPushButton('Generate password')
def on_button_clicked():
    alert = QMessagebog()
    alert.setText(password)
    alert.exec_()
button.clicked.connect(on_button_clicked)
button.show()
app.exec_()

chars = 'abcdefghigklmnopqrstuvwxyz123456789'

lenght = int(input('Choose lenght: '))

password=''

for c in range(lenght):
 password += random.choice(chars)
print(password)

我希望程序打开一个带有按钮的窗口,当单击该按钮时,它将在同一窗口的文本字段中显示生成的密码。

标签: pythonpyqt

解决方案


试试看:

from PyQt5.QtWidgets import *
import random

app    = QApplication([])

w = QWidget()
s = QSpinBox()
s.setRange(7, 20)
button = QPushButton('Generate password')
lay = QVBoxLayout(w)
lay.addWidget(s)
lay.addWidget(button)

def on_button_clicked(): 
    chars = 'abcdefghigklmnopqrstuvwxyz123456789'

#    lenght = int(input('Choose lenght: '))
    lenght = s.value() 

    password = ''
    for c in range(lenght):
        password += random.choice(chars)

    alert = QMessageBox()                           # QMessagebog()
    alert.setText(password)
    alert.exec_()

w.show()

button.clicked.connect(on_button_clicked)

app.exec_()

在此处输入图像描述


推荐阅读