python --pysimplegui开发gui界面
pip install pysimplegui
from PySimpleGUI import Window, Button, Text, WIN_CLOSED
t1 = Text('test')
b1, b2 = Button('hello gui', key='b1'), Button('hai gui2', key='b2')
layout = [
[t1, ],
[b1, b2]
]
window = Window('My GUI', layout) # 以layout为布局创建窗体
while True:
event, value = window.read()
print(f'key>>>{event};value>>>{value}')
if event == WIN_CLOSED:
break
if event == 'b1':
t1.update('update')
if event == 'b2':
t1.update('test')
window.close()
结果
【注】 layout 数组里的每一行和窗口里的行一一对应
公有属性
size 接受一个int元组。第一位表示宽度,第二位表示高度。宽和高一般以字符为计量单位。例如,下面的文本显示结果如下:
from PySimpleGUI import Window, Button, Text, WIN_CLOSED
t1 = Text('test', size=(25, 19), font='Consolas')
b1, b2 = Button('hello gui', key='b1'), Button('hai gui2', key='b2')
layout = [
[t1, ],
[b1, b2]
]
window = Window('My GUI', layout) # 以layout为布局创建窗体
while True:
event, value = window.read()
print(f'key>>>{event};value>>>{value}')
if event == WIN_CLOSED:
break
if event == 'b1':
t1.update('update')
if event == 'b2':
t1.update('test')
window.close()
结果
文本控件
函数 | 介绍 |
---|---|
sg.Text() 或者 sg.T() | 静态显示文本 |
sg.Input() 或 sg.In() 或 sg.InputText() | 文本输入框 |
sg.Listbox() | 多行列表文本框 |
sg.Multiline() | 大文本框 |
按键控件
函数 | 介绍 |
---|---|
sg.Button() 或 sg.B() | 按键 |
sg.Exit() | 退出按键 |
sg.OK() | 确认按键 |
sg.Cancel() | 取消按键 |
sg.Submit() | 提交按键 |
弹窗控件
函数 | 介绍 |
---|---|
sg.popup() | 单一确认按键弹窗 |
sg.popup_ok() | 默认ok按键弹窗 |
sg.popup_yes_no() | 带Yes和No按键的弹窗 |
sg.popup_cancel() | 带cancel按钮的弹窗 |
sg.popup_ok_cancel() | 带OK和cancel按钮的弹窗 |
sg.popup_error() | 带红色error按钮的弹窗 |
sg.popup_yes_no() | 带Yes和No按键的弹窗 |
sg.popup_auto_close() | 几秒后自动关闭的弹窗 |
sg.popup_scrolled() | 文字内容弹窗 |
sg.popup_get_text() | 获取用户输入的弹窗 |
sg.popup_get_file() | 文件选择弹窗,可用于文件保存 |
sg.popup_get_folder() | 文件夹选择弹窗 |
sg.one_line_progress_meter() |
文件(夹)选择控件
函数 | 介绍 |
---|---|
sg.FileBrowse() | 文件选择 |
sg.FolderBrowse() | 文件夹选择 |
单选/复选框
函数 | 介绍 |
---|---|
sg.Checkbox() | 多选框 |
sg.Radio() | 单选框 |
sg.InputCombo() | 下拉列表框 |
sg.InputOptionMenu() | 下拉选项 |
其他
函数 | 介绍 |
---|---|
sg.Menu() | 菜单 |
sg.Frame() | 块 |
sg.Column() | 定义列 |
sg.ProgressBar() | 进度表/进度条 |
sg.Slider() | 滚动条 |
sg.Print() | 打印到调试窗口 |
公共参数
import PySimpleGUI as sg
progress = sg.ProgressBar(100)
num1_inp = sg.Input(size=5)
num2_inp = sg.Input(size=5)
result_txt = sg.Text()
add_btn = sg.Button('add')
layout = [
[num1_inp, num2_inp, result_txt],
[progress],
[add_btn]
]
window = sg.Window('slow calculator', layout)
while True:
event, value = window.read()
if event == sg.WINDOW_CLOSED: break
if event == 'add':
num1 = int(num1_inp.get())
num2 = int(num2_inp.get())
result_txt.update(str(num1 + num2))
结果