Вывести random.sample в текстовое поле - PullRequest
0 голосов
/ 28 мая 2018

Ниже мой графический интерфейс Tkinter, я запускаю код с помощью терминала linux.Графический интерфейс выводит результаты random.sample на терминал, но я хочу, чтобы он выводил результаты random.sample в текстовое поле output над кнопкой.Я попытался изменить def x(): для вывода вместо печати, я попытался изменить текст на выходе на command=x, x и random.sample.

from Tkinter import *
import random
import webbrowser

url = 'http://www.google.co.uk'

# open browser and display url at line 5
def OpenUrl():
    webbrowser.open(url)

# define x
def x():
    print(random.sample(range(1, 60),6))

# Make window
window = Tk()
window.title("UK Lotto Killa")
window.geometry("275x275")

# define title, nym, year
l1 = Label(window, text="    UK Lotto Number Generator", font="bold")
l1.grid(row=1, column=1, sticky=W)
l2 = Label(window, text="  bitsnpcs (2018)", fg="grey", font="none 8")
l2.grid(row=13, column=1, sticky=W)

# output box
output = Text(window, width=23, height=2)
output.grid(row=3, column=1, sticky=W)

# spacing 
l3 = Label(window, text="     ")
l3.grid(row=2, column=1, sticky=W)
l3 = Label(window, text="     ")
l3.grid(row=4, column=1, sticky=W)
l3 = Label(window, text="     ")
l3.grid(row=0, column=1, sticky=W)
l3 = Label(window, text="     ")
l3.grid(row=10, column=1, sticky=W)
l3 = Label(window, text="     ")
l3.grid(row=6, column=1, sticky=W)
l3 = Label(window, text="     ")
l3.grid(row=12, column=1, sticky=W)

# You have options
l3 = Label(window, text="                You have Options - ")
l3.grid(row=7, column=1, sticky=W)
l3 = Label(window, text="   Donate % of winnings to favorite project.")
l3.grid(row=8, column=1, sticky=W)
l3 = Label(window, text="   Donate stake to favorite project.")
l3.grid(row=9, column=1, sticky=W)

# button to generate numbers
Button(window, text="Generate Numbers", width=16, command = x).grid(row=4, column=1, sticky=W)

# open source donation button
Button(window, text="Donate", width=6, command=OpenUrl).grid(row=11, column=1, sticky=W)

# all code goes above here
# finish making window
window.mainloop()

1 Ответ

0 голосов
/ 28 мая 2018

Обновите вашу функцию x () следующим образом: -

def x():
    sampleList = random.sample(range(1, 60),6)
    print(sampleList)
    sampleRandomNumberListAsString = ','.join(str(x) for x in sampleList)
    output.delete(1.0, END)
    output.insert(END, sampleRandomNumberListAsString)

Здесь вывод - ссылка на объект Text (), текст которого должен отображать список случайных чисел.А sampleRandomNumberListAsString - строковое представление случайных чисел, выбранных random ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...