首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何更改pysimplegui中显示的图像

如何更改pysimplegui中显示的图像
EN

Stack Overflow用户
提问于 2022-09-12 03:20:25
回答 1查看 253关注 0票数 0

我按照下面的代码创建了GUI。通过单击图像按钮将显示的图像更改为新图像是否可行,以便在表单更新时保存新图像?此外,在上传更新(和保存)表单后,只显示已填充的字段是否可行?提前感谢

代码语言:javascript
运行
AI代码解释
复制
# ----------- Importing Libraries ---------------

import PySimpleGUI as sg
from datetime import datetime
import base64


sg.theme('DarkTeal9')      
#------------------------------Create single layouts----------------------------------

flower_base64 = "image code here"

layout_img = [[sg.Button('', image_data=flower_base64, button_color=(sg.theme_background_color(),sg.theme_background_color()),border_width=0, key='-GRAPH-')]]


   
layout_1 = [[sg.InputText("", key="-IT2-", font='Arial 9', size=(10,1)),
             sg.Combo(["Item1", "Item2", "Item3"],size=(20,1), key='-TEST2-', font='Arial 9'),
             sg.CalendarButton("", close_when_date_chosen=True,  target='-IN2-', font='Arial 9', no_titlebar=False, format='%d-%b-%Y'),
             sg.InputText("", key='-IN2-', size=(20,1), font='Arial 9')]]


layout_a = [[sg.Button("row 2")]]

layout_2 = [[sg.InputText("", key="-IT3-", font='Arial 9', size=(10,1)),
             sg.Combo(["Item1", "Item2", "Item3"],size=(20,1), key='-TEST3-', font='Arial 9'),
             sg.CalendarButton("", close_when_date_chosen=True,  target='-IN3-', font='Arial 9', no_titlebar=False, format='%d-%b-%Y'),
             sg.InputText("", key='-IN3-', size=(20,1), font='Arial 9')]]

layout_b =[[sg.Button("row 3")]]

layout_3 = [[sg.InputText("", key="-IT4-", font='Arial 9', size=(10,1), visible=True),
             sg.Combo(["Item1", "Item2", "Item3"],size=(20,1), key='-TEST4-', font='Arial 9'),
             sg.CalendarButton("", close_when_date_chosen=True,  target='-IN4-', font='Arial 9', no_titlebar=False, format='%d-%b-%Y'),
             sg.InputText("", key='-IN4-', size=(20,1), font='Arial 9', justification="c")]]

#------------------------------Create master layout----------------------------------
               
layout = [[sg.Column(layout_img, key="-AZZ-")],
          [sg.Column(layout_1, key='-LAY1-'), sg.Column(layout_a, visible=True, key="-LAYA-")],
          [sg.Column(layout_2, visible=False, key='-LAY2-'), sg.Column(layout_b, visible=False, key='-LAYB-')],
          [sg.Column(layout_3, visible=False, key='-LAY3-')],
          [sg.Button ("Save"), sg.Button ("Load"), sg.Button("Upload"), sg.Button('Exit')]]
        

window = sg.Window("", layout, no_titlebar=True)


while True:
    event, values = window.read()
        
    if event == 'Save':
        filename = sg.popup_get_file("Save", save_as=True, no_window=True)
        window.SaveToDisk(filename)
    if event == 'Load':
        filename = sg.popup_get_file('Load', no_window=True)
        window.LoadFromDisk(filename)
        if "-IT2-":
            window[f'-LAY2-'].update(visible=True)
            window[f'-LAYA-'].update(visible=False)
        if "-IT3-":
            window[f'-LAY3-'].update(visible=True)
            
    if event == sg.WIN_CLOSED or event == 'Exit':
        break
        window.close()
    if event == 'row 2':
        window[f'-LAY2-'].update(visible=True)
        window[f'-LAYA-'].update(visible=False)
        window[f'-LAYB-'].update(visible=True)
        layout = str(event)
    if event == 'row 3':
        window[f'-LAY3-'].update(visible=True)
        window[f'-LAYB-'].update(visible=False)
        layout = str(event)

window.close()
EN

回答 1

Stack Overflow用户

发布于 2022-09-12 05:42:15

这里有一个简单的脚本,仅用于演示,只有一个Image元素可以保存并加载到GUI中。

代码语言:javascript
运行
AI代码解释
复制
import json
from pathlib import Path
import PySimpleGUI as sg

settings_file = 'settings.json'
settings = {'-Image-':None}

if Path(settings_file).is_file():
    with open(settings_file, 'rt') as f:
        settings = json.load(f)

layout = [
    [sg.FileBrowse(target='Browse', enable_events=True, key='Browse')],
    [sg.Image(filename=settings['-Image-'], visible=(settings['-Image-'] is not None), key='-Image-')],
]
window = sg.Window('Window Title', layout)

while True:
    event, values = window.read()

    if event == sg.WIN_CLOSED:
        break
    elif event == 'Browse':
        filename = values['Browse']
        window['-Image-'].update(filename=filename, visible=True)
        window.refresh()
        window.move_to_center()
        settings['-Image-'] = filename

with open(settings_file, 'wt') as f:
    json.dump(settings, f)

window.close()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73688476

复制
相关文章
如何在 Git 上更改分支名称?
在 Git 版本控制系统中,分支是非常重要的概念。分支允许你在项目中进行并行开发和实验,同时保持主分支的稳定性。有时候,你可能需要更改已存在的分支名称,例如纠正拼写错误或者为了更好地描述分支的内容。本文将详细介绍如何在 Git 上更改分支名称。
网络技术联盟站
2023/06/19
1.9K0
如何在 Git 上更改分支名称?
更改Linux网卡名称
转载自:https://blog.csdn.net/yeziand01/article/details/88424624
zy010101
2019/07/02
5.1K0
更改Linux网卡名称
如何在Linux中更改SSH端口?
SSH(Secure Shell)是一种安全的远程登录协议,它允许您通过网络远程连接到Linux系统并进行管理操作。默认情况下,SSH使用22端口进行通信。然而,为了增强系统的安全性,有时候我们需要更改SSH端口,以减少潜在的攻击。
网络技术联盟站
2023/05/25
9.6K0
如何在Linux中更改SSH端口?
如何在 Linux 中更改主机名?
在 Linux 系统中,主机名是用于标识和区分网络上的不同计算机的名称。默认情况下,Linux 发行版会分配一个主机名给您的计算机,但是有时候您可能需要根据自己的需求更改主机名。在本文中,我们将详细介绍如何在 Linux 中更改主机名,以及更改主机名后可能涉及到的其他配置。
网络技术联盟站
2023/06/09
8.9K0
如何在 Linux 中更改主机名?
如何在 Linux 中更改 Nginx 80 端口?
Nginx 是一个开源的轻量级 Web 服务器替代 apache 来处理高流量的网站。
网络技术联盟站
2022/06/21
5.5K0
如何在 Linux 中更改 Nginx 80 端口?
如何在 Linux 中更改 Apache HTTP 端口?
Apache Web Server 是一个免费的开源跨平台 Web 服务器应用程序,用于通过 Internet 提供内容。
网络技术联盟站
2022/06/21
6.4K0
如何在 Linux 中更改 Apache HTTP 端口?
如何在Linux中更改用户ID?
在Linux系统中,每个用户都有一个唯一的用户ID(User ID),用于标识和管理用户的权限和资源访问。有时候,我们需要更改用户ID,可能是为了解决冲突、重组用户组或其他管理需求。本文将详细介绍如何在Linux中更改用户ID的几种方法。
网络技术联盟站
2023/06/08
8.6K0
如何在Linux中更改用户ID?
Oracle 更改表名称的几种方式
ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令)
全栈程序员站长
2022/08/29
5K0
更改WordPress插件的菜单名称
如果您想在不直接编辑插件的情况下更改WordPress内部管理菜单的名称,您可以使用$menuWordPress管理员中存在的全局变量。操作此数据结构将允许您更改由任何插件添加的管理菜单的文本或名称。这在您希望提供项目内容的清晰度或为客户端提供更好的管理UX的情况下非常有用。
许都博客
2021/06/15
4K0
如何在 Linux 中更改默认 ssh 端口 22?
SSH 服务使用的标准端口是 22/TCP。但是,您可能希望更改 SSH 默认端口 22,以确保您的服务器尽可能安全,因为标准 22/TCP 端口一直是互联网上黑客和机器人程序漏洞的目标。
会长君
2023/04/25
4.5K0
如何在Linux中更改SSH远程登录端口
SSH:短于安全Shell,SSH(由SSH通信安全公司开发)是用于远程登录安全协议。 使用SSH客户端,用户可以连接到服务器以比其他方法(例如telnet)更安全的方式传输信息。到右侧的图像是SSH会话,它使用一个命令行界面,可如何外观的示例。 SSH默认为端口22。
星哥玩云
2022/07/29
3.8K0
如何在 Eclipse 中更改注释块的 @author 版权信息?
我们在使用 IDE——Ecilpse 进行开发,需要注明版权信息的时候,如果不更改默认设置的话,在注释块 @author 的内容就是电脑系统默认的,例如下图所示。为了开发方便就需要进行修改。
白鹿第一帅
2021/03/02
4.6K0
如何在 Eclipse 中更改注释块的 @author 版权信息?
iPhone应用程序名称本地化
iPhone的应用程序名称也可以本地化,可以按照以下步骤来实施: 1. 修改项目目录下的'-info.plist'文件名</h2> 将'-info.plist' 修改为 Info.plist ## 2. 将Info.plist本地化 在Info.plist上右键点选Get Info,在General标签下,点击Make File Localizable按钮。 里面会有一个默认的英文版本,点击Add Localization... 按钮,添加你需要的本地化语言。 如简体中文"zh-hans",然后点击添加
EltonZheng
2021/01/26
5840
如何在Ubuntu中安装多个终端以及更改默认终端
终端是任何Linux系统的关键部分。它允许您通过shell访问Linux系统。虽说现在的Linux发行版,比如Ubuntu,CentOS等已经基本上可以采用GUI来完成绝大部分一般性的任务。但是,终端程序对于Linux用户来说仍是必不可少的。
会长君
2023/04/26
4.4K0
点击加载更多

相似问题

如何在pysimplegui字段中自动输入

13

后台不返回数据时显示空字段

114

空字段不直接显示在Elasticsearch中?

11

PySimpleGUI显示URL .JPG

18

'graph‘不工作的图像显示| PySimpleGUI - sg.Graph

130
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文