如何使用PySimpleGUI将结果打印到命令行而不是弹出窗口?

时间:2019-04-29 20:12:24

标签: python pysimplegui

下面是来自PySimpleGUI网站的示例代码,我喜欢它输出的GUI,但是我不想让它在单击“提交”时做一个弹出窗口,而是希望它们使用这些值并将其放在命令行上并运行命令

import PySimpleGUI as sg

sg.ChangeLookAndFeel('GreenTan')

form = sg.FlexForm('Everything bagel', default_element_size=(40, 1))

column1 = [[sg.Text('Column 1', background_color='#d3dfda',     justification='center', size=(10,1))],
           [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 1')],
           [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 2')],
           [sg.Spin(values=('Spin Box 1', '2', '3'), initial_value='Spin Box 3')]]
layout = [
    [sg.Text('All graphic widgets in one form!', size=(30, 1), font=("Helvetica", 25))],
    [sg.Text('Here is some text.... and a place to enter text')],
    [sg.InputText('This is my text')],
    [sg.Checkbox('My first checkbox!'), sg.Checkbox('My second checkbox!',     default=True)],
    [sg.Radio('My first Radio!     ', "RADIO1", default=True), sg.Radio('My second Radio!', "RADIO1")],
    [sg.Multiline(default_text='This is the default Text should you decide not to type anything', size=(35, 3)),
 sg.Multiline(default_text='A second multi-line', size=(35, 3))],
    [sg.InputCombo(('Combobox 1', 'Combobox 2'), size=(20, 3)),
 sg.Slider(range=(1, 100), orientation='h', size=(34, 20), default_value=85)],
    [sg.Listbox(values=('Listbox 1', 'Listbox 2', 'Listbox 3'), size=(30, 3)),
 sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=25),
 sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=75),
 sg.Slider(range=(1, 100), orientation='v', size=(5, 20), default_value=10),
 sg.Column(column1, background_color='#d3dfda')],
    [sg.Text('_'  * 80)],
    [sg.Text('Choose A Folder', size=(35, 1))],
    [sg.Text('Your Folder', size=(15, 1), auto_size_text=False, justification='right'),
 sg.InputText('Default Folder'), sg.FolderBrowse()],
    [sg.Submit(), sg.Cancel()]
 ]

button, values = form.Layout(layout).Read()
sg.Popup(button, values)

所以我的问题是sg.Popup ...的最后一行。我可以键入一些内容,而不是将这些值放在命令行中。

很显然,在此示例中,它不是一个创建的命令,但是我最终将改变周围的事物,以便将用户输入转换为我想在命令行上运行的命令,因此在这一点上,我只需要知道如何在命令行而不是弹出窗口上获取所需的值。

1 个答案:

答案 0 :(得分:0)

在演示程序中的PySimpleGUI GitHub上查看,您会发现其中的几个展示了如何“启动”脚本或EXE。如果要在窗口中实时查看命令的输出,则this demo program将为您完成该操作。还有一个启动命令但不实时输出到窗口的命令。

以下是将执行的命令实时输出到窗口的程序:

np.take