【问题标题】:PySimpleGUI get selected textPySimpleGUI 获取选定的文本
【发布时间】:2020-06-13 01:14:22
【问题描述】:

PySimpleGUI 新手。

我有一个多行输入框:

    layout1 = [[sg.Multiline(size=(45,5),key='-IN-')],...
    window1 = sg.Window('Source',layout1,finalize=True)
    event1,values1 = window1.read()

我输入一些文本,然后使用鼠标突出显示文本的一部分。如何获取选定(突出显示)的文本?

在 Tkinter 中,我只是简单地使用了:

        self.title = self.e.selection_get() 

但我喜欢我所看到的 PySimpleGUI,并会尝试坚持下去。

我已经在这里搜索了 github 和 google 并没有找到任何关于此的信息。希望这很简单,并且有人能够指出我正确的方向。

谢谢,

兰迪

【问题讨论】:

    标签: pysimplegui


    【解决方案1】:

    我使用tk.EntryPySimpleGUI.Window

    import PySimpleGUI as sg
    
    layout1 = [[sg.Multiline(size=(45, 5), key='-IN-')], [sg.OK(key="-ok-")]]
    window1 = sg.Window('Source', layout1, finalize=True)
    
    while 1:
        event1, values1 = window1.read()
        print(event1)
        if event1 == sg.WIN_CLOSED:
            break
        elif event1 == "-ok-":
            try:
                title = window1["-IN-"].Widget.selection_get()
            except sg.tk.TclError:
                title = None
            print("selected text:", title)
    

    【讨论】:

      【解决方案2】:

      在 PySimpleGUI 文档中,您会找到关于“扩展 PySimpleGUI”的部分。它讨论了如何使用 tkinter 尚未在 PySimpleGUI 中实现的功能。

      每个元素都有一个名为Widget 的成员变量。此变量包含布局中使用的底层小部件。此变量是您通往尚未在 PySimpleGUI 中实现的 tkinter 功能的门户。它使 PySimpleGUI 的扩展变得非常简单。

      这是您的代码以及使用 Widget 变量的附加代码。

      import PySimpleGUI as sg
      
      layout1 = [[sg.Multiline(size=(45, 5), key='-IN-')], [sg.OK(key="-ok-")]]
      window1 = sg.Window('Source', layout1, finalize=True)
      
      while True:  # Event Loop
          event, values = window1.read()
          selection = window1['-IN-'].Widget.selection_get()
          print('selection = ', selection)
      

      从这个答案中得到的重要部分是所有元素都有这个可以用来扩展 PySimpleGUI 的成员变量。这是代码中最重要的部分:

      window1['-IN-'].Widget
      

      它根据键查找元素,然后为您提供实现它的 tkinter 小部件。此时,您可以使用该小部件进行通常可用的所有调用。

      【讨论】:

        猜你喜欢
        • 2021-03-18
        • 2019-09-29
        • 1970-01-01
        • 2016-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多