0

我正在尝试制作一个程序,告诉您输入的单词 rhymig 与您选择的单词的数量。我在 PySimpleGUI 中执行此操作,但我不知道如何将循环打印到 PySimpleGUI 窗口中。有人可以帮忙吗。在此先感谢-乔什

import PySimpleGUI as sg
import requests

layout = [[sg.Text('What would you like to hear rhymes about: '), sg.InputText()],
      [sg.Submit(), sg.Cancel()]]

window = sg.Window('Rhyme.', layout)
event, values = window.read()

rhyme = values[0]

words = requests.get('https://api.datamuse.com/words?rel_rhy=' + rhyme)

words_json = words.json()
window.close()

layout = [[sg.Text(f'How many rhymes about {rhyme} would you like to hear: '), sg.InputText()],
          [sg.Submit(), sg.Cancel()]]

window = sg.Window('Rhyme.', layout)
event, values = window.read()

num = values[0] 

window.close()

layout = [[sg.Text(#I dont Know how to print the list here) 
4

3 回答 3

0

此代码将为您工作。

import PySimpleGUI as sg
import requests

layout = [[sg.Text('What would you like to hear rhymes about: '), sg.InputText()],
      [sg.Submit(), sg.Cancel()]]

window = sg.Window('Rhyme.', layout)
event, values = window.read()

rhyme = values[0]

words = requests.get('https://api.datamuse.com/words?rel_rhy=' + rhyme)

words_json = words.json()
window.close()

layout = [[sg.Text(f'How many rhymes about {rhyme} would you like to hear: '), sg.InputText()],
          [sg.Submit(), sg.Cancel()]]

window = sg.Window('Rhyme.', layout)
event, values = window.read()

num = values[0] 

window.close()

layout = []
for x in words_json:
    layout = layout + [sg.Text(x['word'])]

layout = [layout]

window = sg.Window('word',layout)

event, values = window.read()

window.close()
于 2020-06-01T07:45:51.033 回答
0

如果要在列表中显示Text(),可以简单使用join()。我认为您要显示的列表是words_json,但是,当我运行您的代码时,此列表为空。

但是,使用此代码列出一个列表:

layout = [[sg.Text(','.join(words_json))]]
于 2020-06-01T07:26:14.707 回答
0

这对我来说是一个很好的锻炼。Github 我定制了这个作为参考。

import PySimpleGUI as sg
import requests
from bs4 import BeautifulSoup
import json

def get_rhyme(rhyme):
    url = ('https://api.datamuse.com/words?rel_rhy={}').format(rhyme)
    words = requests.get(url)
    soup = BeautifulSoup(words.text, 'lxml')
    words_json = []
    words_json = words.json()
    return words_json


def gui():
    layout = [[sg.Text('What would you like to hear rhymes about: ', size=(20,1))],
              [sg.Input('', key='-INPUT-'), sg.Submit(), sg.Cancel()],
              [sg.Output(size=(50,50), key='-OUTPUT-')],
              [sg.Button('Clear'), sg.Button('Exit')]]

    window = sg.Window('Rhyme Search beta', keep_on_top=True, layout=layout)

    output_elem = window.FindElement('-OUTPUT-')

    while True:
        event, values = window.Read()    # read with a 5 second timeout

        print(event, values)
        if event in ('Exit', None):
            break
        elif event == 'Submit':
            out_json = get_rhyme(values['-INPUT-'])
            output_elem.update(out_json)
        elif event == 'Clear':
            window['-OUTPUT-'].update('')

    window.close()

gui()
于 2020-06-01T09:05:00.283 回答