首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在PySimpleGUI中一次获取同一帧内的图形和表格?

在PySimpleGUI中,可以使用Multithreaded选项来实现在同一帧内同时获取图形和表格的功能。

以下是详细步骤:

  1. 导入所需的库和模块:
代码语言:txt
复制
import PySimpleGUI as sg
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import pandas as pd
  1. 创建一个函数,用于生成图形:
代码语言:txt
复制
def generate_graph():
    fig = Figure(figsize=(5, 4), dpi=100)
    ax = fig.add_subplot(111)
    ax.plot([0, 1, 2, 3, 4, 5], [0, 1, 4, 9, 16, 25])
    return fig
  1. 创建一个函数,用于生成表格:
代码语言:txt
复制
def generate_table():
    data = {'Name': ['John', 'Mike', 'Sarah', 'Amy'],
            'Age': [25, 30, 28, 35],
            'City': ['New York', 'Paris', 'London', 'Tokyo']}
    df = pd.DataFrame(data)
    return df
  1. 创建一个GUI窗口,并在窗口中添加一个图形和一个表格:
代码语言:txt
复制
graph_layout = [[sg.Canvas(key='-CANVAS-')]]
table_layout = [[sg.Table(values=generate_table().values, headings=generate_table().columns.tolist(), key='-TABLE-')]]
layout = [[sg.Frame('Graph', graph_layout)], [sg.Frame('Table', table_layout)]]
window = sg.Window('PySimpleGUI Example', layout)
  1. 定义一个循环,用于更新图形和表格:
代码语言:txt
复制
while True:
    event, values = window.read(timeout=0)
    if event == sg.WINDOW_CLOSED:
        break

    fig = generate_graph()
    canvas = FigureCanvasTkAgg(fig, window['-CANVAS-'].TKCanvas)
    canvas.draw()
    canvas.get_tk_widget().pack(side='top', fill='both', expand=1)

    window['-TABLE-'].update(values=generate_table().values)
  1. 关闭窗口:
代码语言:txt
复制
window.close()

完整代码如下:

代码语言:txt
复制
import PySimpleGUI as sg
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import pandas as pd

def generate_graph():
    fig = Figure(figsize=(5, 4), dpi=100)
    ax = fig.add_subplot(111)
    ax.plot([0, 1, 2, 3, 4, 5], [0, 1, 4, 9, 16, 25])
    return fig

def generate_table():
    data = {'Name': ['John', 'Mike', 'Sarah', 'Amy'],
            'Age': [25, 30, 28, 35],
            'City': ['New York', 'Paris', 'London', 'Tokyo']}
    df = pd.DataFrame(data)
    return df

graph_layout = [[sg.Canvas(key='-CANVAS-')]]
table_layout = [[sg.Table(values=generate_table().values, headings=generate_table().columns.tolist(), key='-TABLE-')]]
layout = [[sg.Frame('Graph', graph_layout)], [sg.Frame('Table', table_layout)]]
window = sg.Window('PySimpleGUI Example', layout)

while True:
    event, values = window.read(timeout=0)
    if event == sg.WINDOW_CLOSED:
        break

    fig = generate_graph()
    canvas = FigureCanvasTkAgg(fig, window['-CANVAS-'].TKCanvas)
    canvas.draw()
    canvas.get_tk_widget().pack(side='top', fill='both', expand=1)

    window['-TABLE-'].update(values=generate_table().values)

window.close()

此代码创建了一个包含图形和表格的GUI窗口,图形使用matplotlib生成,表格使用pandas生成。通过不断更新图形和表格的数据,实现了在同一帧内获取图形和表格的功能。

对于腾讯云相关产品和产品介绍链接地址,由于要求不提及具体品牌商,我无法提供对应的链接地址。但腾讯云提供了丰富的云计算服务和解决方案,您可以访问腾讯云官方网站,了解他们的产品和服务,以寻找适合您需求的解决方案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券