小编mil*_*117的帖子

在进程中更新 GUI 项目

我正在尝试为我的应用程序制作一个 GUI,但遇到了一个问题:使用时PySimpleGUI我必须首先定义布局,然后才显示整个窗口。现在的代码是这样的:

import PySimpleGUI as sg      

layout = [[sg.Text('Input:')],      
          [sg.Input(do_not_clear=False)],      
          [sg.Button('Read'), sg.Exit()],
          [sg.Text('Alternatives:')],
          [sg.Listbox(values=('value1', 'value2', 'value3'), size=(30, 2))]]      

window = sg.Window('Alternative items', layout)      

while True:      
    event, values = window.Read()      
    if event is None or event == 'Exit':      
        break      
    print(values[0])    

window.Close()
Run Code Online (Sandbox Code Playgroud)

是否可以只在按下按钮Listbox后显示?Read因为我只会Listbox在输入后获得值。也许可以在按钮事件后用新值更新列表框?

python pysimplegui

7
推荐指数
1
解决办法
3万
查看次数

链接多个python脚本以一个接一个地运行

我有三个 python 脚本。一个从数据库(data_for_report.py)收集数据,另一个从该数据和创建者 .xlsx 文件(report_gen.py)生成报告,最后一个修改该 excel 文件的样式(excel_style.py)。

现在所有三个文件都在同一目录中,我现在所做的只是在解释器中一个接一个地执行脚本以获取报告。我想一键完成所有工作,以便需要此报告的人可以自己完成。我想用 pyinstaller 创建一个 exe,但我想不出一种方法将我的脚本链接在一起,以便在data_for_report.py结束时开始工作report_gen.py等等。

我试着把

subprocess.call("report_gen.py", shell=True)
Run Code Online (Sandbox Code Playgroud)

在第一个脚本结束时,但没有任何反应,我只是得到了这个:

出[2]:1

我怎么能这样做?

python sequential

4
推荐指数
1
解决办法
7040
查看次数

使用 PySimpleGUI 将窗口按列划分会出现错误

我正在尝试构建一个显示两列的 GUI:一列将包含所有输入字段和列表框,第二列将显示来自pandas dataframe.

我认为使用 来执行此操作是一个好主意Frames,但在尝试创建时遇到错误Frame

layout = [sg.Frame('Input data',[[
          sg.Text('Input:'),      
          sg.Input(do_not_clear=False),      
          sg.Button('Read'), sg.Exit(),
          sg.Text('Alternatives:'),
          sg.Listbox(values=('alternatives...', ''), size=(30, 2), key='_LISTBOX_')]])] 
Run Code Online (Sandbox Code Playgroud)

结果:

TypeError:* 之后的 AddRow() 参数必须是可迭代的,而不是 Frame

如何解决这个问题?

我在想是否可以先使用 定义列,Frame然后将列放入 的定义中layout

python pysimplegui

2
推荐指数
1
解决办法
1万
查看次数

获取 Combobox 项的值或索引?

我试图让我的 GUI 根据组合框中选择的项目显示信息。PySimpleGUI食谱说我应该使用GetSelectedItemsIndexes()方法,但是当我尝试使用它时:

window.Element('_COMBOBOX_').GetSelectedItemsIndexes()
Run Code Online (Sandbox Code Playgroud)

我明白了:

AttributeError:“Combo”对象没有属性“GetSelectedItemsIndexes”

我尝试在控制台中输入以下内容:

dir(window.Element('_COMBOBOX_'))
Run Code Online (Sandbox Code Playgroud)

似乎根本GetSelectedItemsIndexes不存在...那么我怎样才能从组合框中获取所选值的索引呢?

python pysimplegui

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×4

pysimplegui ×3

sequential ×1