Python课程-w73班
Louyj's Blog
Toggle navigation
Python课程-w73班
Home
班级课件
课堂代码
课后作业
学习资料
Archives
Tags
2022-03-27课堂代码
2022-03-27 08:02:37
9
0
0
python-w73
``` ''' GUI tkinter tk interface GUI概念 窗口: 是所有组件的容器, 一个GUI程序只能有一个窗口 控件: 窗口里面盛放的小组件, 比如按钮/文本框.. 简单控件/组合控件 事件: 是窗口和用户之间的交互, 通过事件窗口可以响应外部的操作 窗口的布局: - 绝对布局: place - 相对布局: pack - 网格布局: grid 控件: - 按钮 Button - 文本框: Label - 文本输入框: Entry - 单选框: RadioButton - 下拉框: Commobbox 控件名(master,options) ''' import string import tkinter from tkinter import ttk import random as r window = tkinter.Tk() window.title("随机密码生成器") label = tkinter.Label(window, text='密码:') label.grid(row=0, column=0) entry_text = tkinter.StringVar() entry = tkinter.Entry(window, textvariable=entry_text) entry.grid(row=0, column=1) def gen_poor_password(password_len): list = r.choices(string.ascii_lowercase, k=password_len) return ''.join(list) def medium_password(len): password = r.choices(string.ascii_lowercase + string.ascii_uppercase + string.digits, k=len) return ''.join(password) ''' entry设置文本的两种方法: - entry.delete(0, tkinter.END)/entry.insert(0, password) - 控制变量: entry_text.set(password) ''' def generate_password(): radio_value = var_radio.get() password_len = combo_var.get() password = '' # entry.delete(0, tkinter.END) if radio_value == 1: password = gen_poor_password(password_len) elif radio_value == 2: password = medium_password(password_len) print(password) # entry.insert(0, password) entry_text.set(password) # combobox.configure(state=tkinter.DISABLED) # combobox['state'] = tkinter.DISABLED # 弱密码 btn = tkinter.Button(window, text="生成", command=generate_password, cursor="plus", width=10) btn.grid(row=0, column=2, columnspan=3) # RadioButton # 多选框 # image # 参数: 主控件, options # pad 填充 # text: text静态文本, 程序运行时不改变的 # textvariable: 是动态文本, 程序运行时能动态改变的 # radiobutton成组出现时: variable参数一定要是同一个, 并且value参数不能相同 ''' 控制变量: 动态赋值 tkinter.IntVar() --> int tkinter.StringVar() tkinter.DoubleVar() // c: float/double python: float var_radio.get() var_radio.set() ''' var_radio = tkinter.IntVar() radio = tkinter.Radiobutton(window, text="弱", disabledforeground='red', value=1, variable=var_radio) radio.grid(row=1, column=2) radio = tkinter.Radiobutton(window, text="中", disabledforeground='red', value=2, variable=var_radio) radio.grid(row=1, column=3) radio = tkinter.Radiobutton(window, text="强", disabledforeground='red', value=3, variable=var_radio) radio.grid(row=1, column=4) # Combobox下拉框 combo_var = tkinter.IntVar() combobox = ttk.Combobox(window, textvariable=combo_var, values=(6, 7, 8, 9, 10, 11, 12, 13)) combobox.current(1) combobox.grid(row=1, column=1) label_len = tkinter.Label(window, text='长度:') label_len.grid(row=1, column=0) window.mainloop() # 主循环, 进入事件系统 lower_str = string.ascii_lowercase # raw 原始 # 位数限制 # 大小写 # 特殊字符 # 只能数字 ''' 规则: 弱密码: 小写字母 中密码: 大写+小写+数字 (位置都随机/随机/可以是0个) 强密码: 特殊符号+大写+小写+数字, 特殊符号放前面->大写->小写->数字 (直接位数固定13位, 下拉框固定, 特殊符号(带空格)4, 大写3,小写3,数字3, 特殊符号,大写,小写,数字是有序的) ''' ```
Pre:
2022-04-10课件
Next:
2022-03-27课后作业
0
likes
9
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Submit
Sign in
to leave a comment.
No Leanote account?
Sign up now.
0
comments
More...
Table of content
No Leanote account? Sign up now.