如何使用PySimpleGUI通过有效的python脚本构建GUI

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用PySimpleGUI通过有效的python脚本构建GUI相关的知识,希望对你有一定的参考价值。

我正在使用内置于python 3的程序,该程序确定我应该使用哪个VIP(虚拟IP)子网以及VIP应该与哪个负载平衡器匹配。该程序将询问您池成员之一的IP地址。基于此,它将告诉您需要从VIP到哪个子网的IP地址,以及要在其上建立VIP的负载均衡器。一个简单的工作脚本的编辑示例在下面显示的linux框中运行:

from netaddr import IPNetwork, IPAddress, IPSet

global subnet
global loadbalancer

member = IPAddress(input("What is the IP address of one of the nodes? "))

# Lists for each LB pair containing the node subnets.
loadbalancer1_node_IPs = IPSet([IPNetwork('1.1.1.0/22'), IPNetwork('2.2.2.0/22'), IPNetwork('3.3.3.0/22')])
loadbalancer2_node_IPs = IPSet([IPNetwork('4.4.4.0/23'), IPNetwork('2.2.2.0/23'), IPNetwork('3.3.3.0/23')])


# Provides the LB the VIP is to be built on based on node IP address.
if IPAddress(member) in loadbalancer1_node_IPs:
    loadbalancer = "The LB pair you need to build this VIP on is loadbalancer1_node_IPs"
    subnet = "You need a VIP ip from subnet 1.1.1.0/22, 2.2.2.0/22, or 3.3.3.0/22"
elif IPAddress(member) in loadbalancer2_node_IPs:
    loadbalancer = "The LB pair you need to build this VIP on is loadbalancer2_node_IPs"
    subnet = "You need a VIP ip from subnet 4.4.4.0/23, 2.2.2.0/23, or 3.3.3.0/23"


print(loadbalancer)
print(subnet)
exit(input("Press Enter to exit."))

此脚本在Linux上使用cli可以正常工作。我现在的目标是使用python包PySimpleGUI来构建输出结果的GUI。我正在尝试将上面的代码与下面的PySimpleGUI代码结合起来:

import PySimpleGUI as sg

form = sg.FlexForm('F5 Load Balancer VIP IP and LB selector')

layout = [ [sg.Text('What is the IP address of one of the nodes'), sg.InputText()],
           [sg.OK()] ]

button, (name,) = form.Layout(layout).Read()

我很难获得结果的基本输出。我尝试使用

window = sg.Window('Test').Layout(layout) 

并使用]更新它>

window.FindElement('loadbalancer').Update(loadbalancer) 

但是窗口显示错误

"Error creating layout. The layout specified has already been used.". 

感谢您的协助。谢谢。

我正在使用内置于python 3的程序,该程序确定我应该使用哪个VIP(虚拟IP)子网以及VIP应该与哪个负载平衡器匹配。程序将询问您IP地址是什么...

答案

将代码放入函数中可能会更容易,因此可以将其导入其他脚本中

以上是关于如何使用PySimpleGUI通过有效的python脚本构建GUI的主要内容,如果未能解决你的问题,请参考以下文章

如何在PySimpleGUI中清除窗口?

你可以通过 Python 控制台交互地运行 PySimpleGUI 函数吗?

让 PySimpleGUI 列表框列出对象属性

PySimpleGui:如何将值从一个列表框添加到另一个列表框

python pysimplegui 文本框输入内容,如何将输入的内容保存到txt文件中?

PySimpleGUI 中的交互式 matplotlib 绘图