Pysimplegui: [增强/错误/问题] 我的问题是...

创建于 2020-06-21  ·  4评论  ·  资料来源: PySimpleGUI/PySimpleGUI

问题类型(增强、错误、错误、问题)

问题/增强

操作系统

Win10,Raspian

蟒蛇版

3.7

PySimpleGUI 端口和版本

tkinter 端口,4.20.0


2020 年 6 月 6 日发布 4.20.0

您以月或年为单位的经验水平

1年_________ Python编程经验
45 年_____ 总体编程经验
是_____ 以前使用过另一个 Python GUI 框架(tkinter、Qt 等)(是/否很好)?

您已完成以下步骤:

  • [ x] 阅读有关如何提交问题的说明
  • [ x] 通过主要文档http://www.PySimpleGUI.org搜索您的问题
  • [ x] 如果不是 PySimpleGUI(Qt、WX、Remi),请通过自述文件搜索您的特定端口
  • [ x] 寻找与您的目标相似的演示程序http://www.PySimpleGUI.com
  • [ x] 注意GitHub上每个端口下也有Demo Programs
  • [ x] 在调试器之外运行程序(从命令行)
  • [ x] 搜索问题(打开和关闭)以查看是否已报告
  • [ ]x 通过升级您的 PySimpleGUI.py 文件以使用 GitHub 上的当前文件重试。 您的问题可能已经解决,但尚未出现在 PyPI 上。

问题描述/问题/细节

我的应用程序用于树莓派上的 GUI,元素实时更新(异步窗口)
UPS2-GUI
. 它工作正常,但 pysimplegui 中的一些附加功能会很棒:
问题 1 :请提供一个包含可通过 window['xxkey'].update() 更新的文本元素属性的列表。

问题 2 :您的某些示例中出现的 window[f'xxkey'] 中的 _f_ 的目的是什么

增强功能:对于动态更新我很重要,例如文本上的“border_width”。

工作示例:
window['K_BATT_STATE'].update('LOW')
window[f'K_BATT_V'].update(background_color='green')

不工作的例子:
window[f'K_BATT_V'].update(border_width=2)

最有用的评论

据我所知

  • Update(value=None, background_color=None, text_color=None, font=None, visible=None) 中显示的文本元素属性选项。
  • 唯一一个使用 window[f'...] 的演示示例是Demo_Column_Elem_Swap_Entire_Window.py 。 f-string 用于通过变量替换子字符串。

一份样品给你。

import PySimpleGUI as sg

layout = [[sg.Text('Hello World !', font=('Courier New',20), key='TEXT1')],
          [sg.Text('dlroW olleH !', font=('Courier New',20), key='TEXT2')]]
window = sg.Window('Text', layout, finalize=True)
window['TEXT1'].Widget.configure(borderwidth=5, relief='solid')

while True:

    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break

window.close()

所有4条评论

文档和内置文档字符串准确地告诉您每个元素的更新方法可用的内容。 看一下详细的调用参考。
http://calls.PySimpleGUI.org
如果某些东西不存在,那么您有几个选择。 你可以直接操作底层的Widget,或者开启一个增强请求。,

据我所知

  • Update(value=None, background_color=None, text_color=None, font=None, visible=None) 中显示的文本元素属性选项。
  • 唯一一个使用 window[f'...] 的演示示例是Demo_Column_Elem_Swap_Entire_Window.py 。 f-string 用于通过变量替换子字符串。

一份样品给你。

import PySimpleGUI as sg

layout = [[sg.Text('Hello World !', font=('Courier New',20), key='TEXT1')],
          [sg.Text('dlroW olleH !', font=('Courier New',20), key='TEXT2')]]
window = sg.Window('Text', layout, finalize=True)
window['TEXT1'].Widget.configure(borderwidth=5, relief='solid')

while True:

    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break

window.close()

非常感谢杰森!

当底层“小部件”的功能未通过 PySimpleGUI API 公开时,您可以使用.Widget成员变量直接访问底层 GUI 框架的小部件。 您会失去从一个框架到另一个框架的可移植性,但这在这些情况下通常不是问题。

很高兴您找到了您满意的解决方案。

嗨杰森,嗨迈克
非常感谢! 这两个答案都有助于在几分钟内结束我的痛苦:-)。
Pysimplegui 是一款出色的产品,拥有令人难以置信的支持!
一旦我的项目可用,我将在我的 git 帐户上发布它。 它是一款适用于所有树莓派 3++ 和 pi 0 型号的不间断高效电源,包括完整的硬件和软件设计。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

eyeonus picture eyeonus  ·  6评论

yogesh-aggarwal picture yogesh-aggarwal  ·  3评论

lucasea777 picture lucasea777  ·  3评论

scmanjarrez picture scmanjarrez  ·  5评论

OndoyManing picture OndoyManing  ·  4评论