如何将功能输入和输出从控制台传输到GUI应用程序?

格蕾丝·巴克

我不确定如何将功能的输入和输出从控制台传输到界面。我不知道我是否应该执行销毁功能并每次创建一个新框架。

from tkinter import *

states = ["Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho",
          "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi",
          "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio",
          "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia",
          "Washington", "West Virginia", "Wisconsin", "Wyoming"]
capitals = ["Montgomery", "Juneau", "Phoenix", "Little Rock", "Sacramento", "Denver", "Hartford", "Dover", "Tallahassee", "Atlanta", "Honolulu", "Boise",
            "Springfield", "Indianapolis", "Des Moines", "Topeka", "Frankfurt", "Baton Rouge", "Augusta", "Annapolis", "Boston", "Lansing", "St. Paul", "Jackson",
            "Jefferson City", "Helena", "Lincoln", "Carson City", "Concord", "Trenton", "Santa Fe", "Albany", "Raleigh", "Bismarck", "Columbus",
            "Oklahoma City", "Salem", "Harrisburg", "Providence", "Columbia", "Pierre", "Nashville", "Austin", "Salt Lake City", "Montpelier", "Richmond",
            "Olympia", "Charleston", "Madison", "Cheyenne"]

def geofunction():
    i = 0
    for element in states:
        value = 1
        while value == 1:
            test = input(element + ": ") 
            if test == capitals[i]:
                print("You got it!")
                value = 0
            else:
                print("Try again")
        i += 1
    print("Game Finished!")

root = Tk()

topFrame = Frame(root)
topFrame.pack()
bottomFrame = Frame(root)
bottomFrame.pack()

theLabel = Label(topFrame, text = "Welcome to the Geography Quizzer!\nClick below to get started!")
theLabel.pack(fill=BOTH)

getstarted = Button(bottomFrame, text="Get started!", fg="black", bg="tan", command=geofunction)
getstarted.pack(fill=BOTH)

root.mainloop()
Flavio Moraes

您无需每次都破坏框架,可以进行更改。您可以在巡视框架中放置标签,然后更改框架的文本。例如,如果要更改文本,theLabel可以执行以下操作:

theLabel['text'] = 'new text'
root.update()

广告以使用输入,我相信您希望将输入更改为GUI中的Entry Widget。Entry小部件是一个小部件,用户可以在其中输入输入,并且可以使用Entry.get()或将tkinter变量用作Entry.textvariable来访问它,例如:

from tkinter import *

states = ["Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho",
          "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi",
          "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio",
          "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia",
          "Washington", "West Virginia", "Wisconsin", "Wyoming"]
capitals = ["Montgomery", "Juneau", "Phoenix", "Little Rock", "Sacramento", "Denver", "Hartford", "Dover", "Tallahassee", "Atlanta", "Honolulu", "Boise",
            "Springfield", "Indianapolis", "Des Moines", "Topeka", "Frankfurt", "Baton Rouge", "Augusta", "Annapolis", "Boston", "Lansing", "St. Paul", "Jackson",
            "Jefferson City", "Helena", "Lincoln", "Carson City", "Concord", "Trenton", "Santa Fe", "Albany", "Raleigh", "Bismarck", "Columbus",
            "Oklahoma City", "Salem", "Harrisburg", "Providence", "Columbia", "Pierre", "Nashville", "Austin", "Salt Lake City", "Montpelier", "Richmond",
            "Olympia", "Charleston", "Madison", "Cheyenne"]
counter = 0

root = Tk()

def geofunction():
    global counter

    def get_answer():
        global counter
        if input_entry.get() == capitals[counter]:
            theLabel['text'] = "You got it!"
            counter += 1
            input_text['text']=states[counter]+":"
        else:
            theLabel['text'] = "Try again"
        if counter == len(states):
            theLabel['text'] = "Game Finished!"
            input_entry.destroy()
    
    getstarted.pack_forget()
    input_text = Label(text=states[counter]+":")
    input_text.pack()
    input_entry = Entry()
    input_entry.pack()
    Button(text='answer', command=get_answer).pack()


topFrame = Frame(root)
topFrame.pack()
bottomFrame = Frame(root)
bottomFrame.pack()

theLabel = Label(topFrame, text = "Welcome to the Geography Quizzer!\nClick below to get started!")
theLabel.pack(fill=BOTH)

getstarted = Button(bottomFrame, text="Get started!", fg="black", bg="tan", command=geofunction)
getstarted.pack(fill=BOTH)

root.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

反复将数据从Windows服务传输到控制台应用程序

来自分类Dev

如何将控制台输出直接管道传输到记事本?

来自分类Dev

如何将Qt GUI应用程序的版本打印到控制台

来自分类Dev

如何将C#控制台输出流式传输到ASP网页文本框

来自分类Dev

C ++ GUI和控制台应用程序

来自分类Dev

C ++ GUI和控制台应用程序

来自分类Dev

如何将数据传递到控制台应用程序并处理其输出?

来自分类Dev

如何阅读Windows GUI应用程序的控制台输出?

来自分类Dev

长时间运行的控制台应用程序(C ++)的输入和输出文本

来自分类Dev

在 .NET Core 控制台应用程序中编码输出和输入

来自分类Dev

如何从控制台或GUI应用程序检测运行?

来自分类Dev

如何将日志从Azure移动服务流式传输到控制台

来自分类Dev

如何从PowerShell将输入发送到控制台应用程序

来自分类Dev

如何将控制台应用程序转换为SWING框架?

来自分类Dev

如何将Google Bigquery与C#控制台应用程序集成

来自分类Dev

无法使用PowerShell通过管道传输控制台应用程序的无限输出

来自分类Dev

如何将变量值从控制台应用程序传递到Windows窗体应用程序

来自分类Dev

将控制台应用程序的输出同时记录到文本文件和控制台窗口中

来自分类Dev

在没有Java Web Start的情况下,如何通过管道将Java控制台输出传输到文件?

来自分类Dev

从Ubuntu中的Qt GUI应用程序运行多个命令行应用程序并获取控制台输出

来自分类Dev

从Ubuntu中的Qt GUI应用程序运行多个命令行应用程序并获取控制台输出

来自分类Dev

如何将事件通知返回到Java控制台应用程序的主程序类?

来自分类Dev

如何在MVC应用程序和控制台应用程序之间共享信息

来自分类Dev

inotifywait不将输出管道传输到控制台

来自分类Dev

Windows GUI以及控制台应用程序

来自分类Dev

Windows GUI以及控制台应用程序

来自分类Dev

我如何从bat / cmd文件启动控制台应用程序,所以控制台输出将在bat内部?

来自分类Dev

我如何从bat / cmd文件启动控制台应用程序,所以控制台输出将在bat内部?

来自分类Dev

从CMD控制台将输出流式传输到VB ListBox

Related 相关文章

  1. 1

    反复将数据从Windows服务传输到控制台应用程序

  2. 2

    如何将控制台输出直接管道传输到记事本?

  3. 3

    如何将Qt GUI应用程序的版本打印到控制台

  4. 4

    如何将C#控制台输出流式传输到ASP网页文本框

  5. 5

    C ++ GUI和控制台应用程序

  6. 6

    C ++ GUI和控制台应用程序

  7. 7

    如何将数据传递到控制台应用程序并处理其输出?

  8. 8

    如何阅读Windows GUI应用程序的控制台输出?

  9. 9

    长时间运行的控制台应用程序(C ++)的输入和输出文本

  10. 10

    在 .NET Core 控制台应用程序中编码输出和输入

  11. 11

    如何从控制台或GUI应用程序检测运行?

  12. 12

    如何将日志从Azure移动服务流式传输到控制台

  13. 13

    如何从PowerShell将输入发送到控制台应用程序

  14. 14

    如何将控制台应用程序转换为SWING框架?

  15. 15

    如何将Google Bigquery与C#控制台应用程序集成

  16. 16

    无法使用PowerShell通过管道传输控制台应用程序的无限输出

  17. 17

    如何将变量值从控制台应用程序传递到Windows窗体应用程序

  18. 18

    将控制台应用程序的输出同时记录到文本文件和控制台窗口中

  19. 19

    在没有Java Web Start的情况下,如何通过管道将Java控制台输出传输到文件?

  20. 20

    从Ubuntu中的Qt GUI应用程序运行多个命令行应用程序并获取控制台输出

  21. 21

    从Ubuntu中的Qt GUI应用程序运行多个命令行应用程序并获取控制台输出

  22. 22

    如何将事件通知返回到Java控制台应用程序的主程序类?

  23. 23

    如何在MVC应用程序和控制台应用程序之间共享信息

  24. 24

    inotifywait不将输出管道传输到控制台

  25. 25

    Windows GUI以及控制台应用程序

  26. 26

    Windows GUI以及控制台应用程序

  27. 27

    我如何从bat / cmd文件启动控制台应用程序,所以控制台输出将在bat内部?

  28. 28

    我如何从bat / cmd文件启动控制台应用程序,所以控制台输出将在bat内部?

  29. 29

    从CMD控制台将输出流式传输到VB ListBox

热门标签

归档