IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Python图形界面编程 PySimpleGUI(2) -> 正文阅读

[大数据]Python图形界面编程 PySimpleGUI(2)

文本元素的更新设定方法

在这里插入图片描述

在这里插入图片描述

import PySimpleGUI as pg
layout = [[pg.T('姓名',key='name'),pg.Button('点赞')]]

window = pg.Window('演示',layout)
while True:
    event, values = window.read()
    if event == None:
        break
    if event == '点赞':
        window['name'].update(
            value='谢谢'         # 文本值更新为谢谢
            ,background_color='red'  # 背景颜色更新
            ,text_color='white'      # 字体颜色更新
            ,font=('宋体',10)        # 字体更新
            ,visible=True)           # 可见度更新
        
window.close()

在这里插入图片描述

在这里插入图片描述

layout_ch = [[pg.Button("中文"),pg.Button('English')]
             ,[pg.T("请输入基本信息",key='text')]
             ,[pg.T("姓名",key='name'),pg.In()]
             ,[pg.T('性别',key='sex'),pg.In()]
             ,[pg.T('国籍',key='nationality'),pg.In()]
             ,[pg.Button('确认',key='confirm'),pg.Button('取消',key='cancel')]]

en_dic = {'text':['请输入基本信息','Please enter basic information!'],
          'name':['姓名','Name'],
          'sex':['性别','Sex'],
          'nationality':['国籍','Nationality'],
          'confirm':['确认','Confirm'],
          'cancel':['取消','Cancel']}
flag=0

window = pg.Window('GUI',layout_ch)
while True:
    event, values = window.read()
    if event == 'None':
        break
    if event == pg.WIN_CLOSED:
        break
    if event == 'English':
        flag = 1
        for k,v in en_dic.items():
            window[k].update(en_dic[k][1])
            
    if event == '中文':
        flag = 0
        for k,v in en_dic.items():
            window[k].update(en_dic[k][0])
        
    if event == 'cancel':
        break
    if event == 'confirm':
        if flag == 0:
            pg.Popup('信息录入完成!')
        if flag == 1:
            pg.Popup('information completed!')
    
window.close()

单行输入框元素设定方法

在这里插入图片描述

# 文本元素属性设置和输入框元素的属性设置大部分相同
pg.Text(
    text='',           # 文本内容
    size=(None, None), # 窗口大小
    s=(None, None),   
    auto_size_text=True, # 窗口自适应显示
    click_submits=False,
    enable_events=False,  # 允许文本产生事件
    relief=None,          # 浮雕设计 "RELIEF_" - `RELIEF_RAISED, RELIEF_SUNKEN, RELIEF_FLAT, RELIEF_RIDGE, RELIEF_GROOVE, RELIEF_SOLID`
    font=None,            # ('宋体',20) 字体、大小
    text_color=None,      # 字体颜色
    background_color=None,# 文本背景颜色
    border_width=None,    # 设定 relief 后用来设定边界宽度
    justification=None,   # 对齐方式 'left', 'right', 'center'
    pad=None,             # 元素间隔设定,
    p=None,
    key=None,             # 给一个键用来索引数据
    k=None,
    right_click_menu=None, # 右击显示下拉菜单![1,[1,2,3]]
    expand_x=False,
    expand_y=False,
    grab=None,          # 如果为 True 那么点击此元素可以拖拽窗口
    tooltip=None,       # 光标放上的时候显示提示文本
    visible=True,       # 元素是否可见
    metadata=None,
)

pg.In(
    default_text='',
    size=(None, None),
    s=(None, None),
    disabled=False,          # 禁止输入,输入框不能输入内容
    password_char='',        # 输入密码变成星号
    justification=None,      # 左右对齐或居中 'l' 'r' 'c'
    background_color=None,
    text_color=None,
    font=None,
    tooltip=None,
    border_width=None,
    change_submits=False,
    enable_events=False,     # 如果为 True,那么输入内容的时候就会打印事件!
    do_not_clear=True,       # 事件触发之后输入框依然不被清除
    key=None,
    k=None,
    focus=False,             # 设置焦点,如果 True 则光标放到当前输入框里面
    pad=None,
    p=None,
    use_readonly_for_disable=True,
    readonly=False,
    disabled_readonly_background_color=None,# 当输入框 disable=True 的时候触发,会显示指定颜色来表示输入框不能输入内容
    disabled_readonly_text_color=None, # 与上面相似,禁用时的文本颜色设定
    expand_x=False,
    expand_y=False,
    right_click_menu=None,  # 右键出现菜单(和文本一样)
    visible=True,
    metadata=None,
)

单行输入框的更新设定

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

window[key].update() 方法示例

layout_ch = [[pg.Button("中文"),pg.Button('English')]
             ,[pg.T("请输入基本信息",key='text')]
             ,[pg.T("姓名",key='name'),pg.In(key='name_input')]
             ,[pg.T('性别',key='sex'),pg.In()]
             ,[pg.T('国籍',key='nationality'),pg.In()]
             ,[pg.Button('确认',key='confirm'),pg.Button('取消',key='cancel')]]

en_dic = {'text':['请输入基本信息','Please enter basic information!'],
          'name':['姓名','Name'],
          'sex':['性别','Sex'],
          'nationality':['国籍','Nationality'],
          'confirm':['确认','Confirm'],
          'cancel':['取消','Cancel']}
flag=0

window = pg.Window('GUI',layout_ch)
while True:
    event, values = window.read()
    if event == 'None':
        break
    if event == pg.WIN_CLOSED:
        break
    if event == 'English':
        flag = 1
        for k,v in en_dic.items():
            window[k].update(en_dic[k][1])
    if event == '中文':
        flag = 0
        for k,v in en_dic.items():
            window[k].update(en_dic[k][0])
        
    if event == 'cancel':
        break
    if event == 'confirm':
        
        '''-----------window[key].update 的演示代码----------'''
        window['name_input'].update(      # update 输入框
                                value='qpn',
                                disabled=True,  # 无法更改输入内容
                                select=True)   # 输入框内容被选中
        '''---------------------------------------------------'''
    
window.close()

在这里插入图片描述

  • 输入文本框的 update 详细方法参数如下
pg.In.update(
    self,
    value=None,
    disabled=None,
    select=None,
    visible=None,
    text_color=None,
    background_color=None,
    move_cursor_to='end',    # 光标移动到何处
    password_char=None,
    paste=None,
)

小练习

在这里插入图片描述

def check(user_pass_dict,k,v):
    if k in user_pass_dict.keys():
        return user_pass_dict[k] == v
layout = [[pg.T('用户名',key='username'),pg.In('请输入您的用户名',key='input_user')]
         ,[pg.T('密码',key='password'),pg.In(
                                             password_char='*'
                                           ,key='input_pass')]
         ,[pg.B('确认',key='confirm'),pg.B('取消',key='cancel')]]

user_pass_dict = {'qpn':'123456'}

window = pg.Window('GUI',layout)

while True:
    event, values = window.read()
    
    if event == None or event == pg.WIN_CLOSED:
        break
    if event == 'confirm':
        # window[key] 返回一个对象,通过 get 方法得到字符串
#         key = window['input_user'].get()  
#         value = window['input_pass'].get()
#         bool_ = check(user_pass_dict,key,value)
        
        # 或者采用下面的写法;直接从 values 中获得所有的输入内容
        key = values['input_user']
        value = values['input_pass']
        bool_ = check(user_pass_dict,key,value)
        if bool_:
            pg.Popup('输入正确')
        else:
            pg.Popup('输入错误')
        
window.close()


        

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:36:32  更:2022-02-28 15:37:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:42:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码