在PySimpleGUI中制作文本框

4

我正在遵循PySimpleGUI文档,并在进行过程中进行自己的编辑。我对此非常陌生,但有使用Tkinter的经验。Tkinter中有一个文本框,可以通过代码Text(window, width=?, height=?, wrap=WORD, background=yellow)获得。然而,在PySimpleGUI中,类似的代码:layout = [[sg.Text('Some text on Row 1')]]会创建一个标签。我的代码如下:

import PySimpleGUI as sg

sg.theme('DarkAmber')   # Add a touch of color
# All the stuff inside your window.
layout = [  [sg.Text('Some text on Row 1')],
            [sg.Text('Enter something on Row 2'), sg.InputText()],
            [sg.Button('Ok'), sg.Button('Close Window')],
            [sg.Text('This is some text', font='Courier 12', text_color='blue', background_color='green')],
            [sg.Listbox(values=('value1', 'value2', 'value3'), size=(30, 2), key='_LISTBOX_')]]

# Create the Window
window = sg.Window('Test', layout).Finalize()
window.Maximize()
# Event Loop to process "events" and get the "values" of the inputs
while True:
    event, values = window.read()
    if event in (None, 'Close Window'): # if user closes window or clicks cancel
        break
    print('You entered ', values[0])

window.close()

我尝试使用PySimpleGui:如何在文本框中输入文本?,但是这里的文本框实际上是列表框:

此问题的文本框

这与我想要的文本框完全不同:

我想要的TextBox

文本框由红线围绕。请有人帮我找到能给我所需的文本框的代码吗?


你尝试过使用sg.Multiline吗? - acw1668
哇,它可以工作,并且是我所需要的 @acw1668。您是否可以回答这个问题并展示一下如何从中获取变量的示例代码?从教程看来,整个窗口似乎都被读取了,那么我应该如何从不同区域绘制不同的变量呢? - Thomas
抱歉,我不明白你想要什么? - acw1668
@acw1668 在教程中,您将获得一个带有代码 event, values = window.read() 的输入。当您的窗口中有多个输入时,您该如何将它们分开? - Thomas
您可以为每个小部件分配一个“键”,并使用此键来识别您想要的数据。例如,sg.Multiline(..., key='textbox'),然后您可以使用values['textbox']来获取sg.Multiline的内容。 - acw1668
谢谢 @acw1668。想回答一下这样我可以给你一个勾选吗? - Thomas
1个回答

6
你可以使用tkinter的

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接