【问题标题】:how to get an output message from tkinter?如何从 tkinter 获取输出消息?
【发布时间】:2020-08-24 08:53:35
【问题描述】:

我正在尝试制作一个测验应用程序,但我编写了以下不完整的代码还有更多的东西。我想要的输出应该是这样的: 客户输入 12 该应用程序显示另一个框,上面写着您的答案是 12 但在这个例子中,它是针对单个答案完成的,它也应该适用于更多问题。

import tkinter as tk
from tkinter import *
import math
import random
window=tk.Tk()
def question():
  window=tk.Tk()
  q1=tk.Label(window, text="enter your question").grid(row=1, column=1)
  e1=tk.Entry(window, text="the number of your answer ").grid(row=2, column=1)
  b1=tk.Button(window, text="exit", command=window.destroy).grid(row=3, column=1)
  window.mainloop()   

在您的帮助下,我已将代码更改为此,但仍然遇到消息框或类似内容的问题。更新后的代码如下。现在的问题是,只要我运行代码,就会打开空消息框,并且不会等待我在条目中输入一些值

def question():
  window=tk.Tk()
  q1=tk.Label(window, text="enter your question")
  e1=tk.Entry(window, text="the number of your answer ")
  b1=tk.Button(window, text="exit", command=window.destroy)
  q1.grid(row=1, column=1)
  e1.grid(row=2, column=1)
  b1.grid(row=3, column=1)
  e1_num=e1.get()
  while e1_num==None:
     pass
  else:
     messagebox.showinfo(e1_num)
  mainloop()

【问题讨论】:

  • 该窗口不会运行,因为您没有在任何地方调用question,也许突出显示您真正想要的输出?
  • 嗯,我希望它打印客户输入的任何内容,这是我想要的一个简单模型,主要的会有很多问题,我是 tkinter 的初学者,不知道这里出了什么问题
  • 你试过messagebox包吗
  • 好的,首先删除该函数,这将显示一个 GUI,建议删除 Entry(...).grid(..) 并将其分成两行,如 e1 = Entry(...)e1.grid(...)。让我知道。您可以使用messagebox 向用户显示一些消息,例如正确答案或错误答案。
  • 好吧,我试过messagebox,但它给出了错误,也许我用错了,有教程吗?

标签: python tkinter output


【解决方案1】:

您可以使用e1.insert('0', 'subject') 在条目中插入一些内容。您还可以用变量替换“主题”。要删除条目的内容,您可以使用e1.delete(0,END)

您可以从条目 (e1) 中获取信息并在其中存储一个变量,如下所示:e1_num = e1.get()

希望对你有帮助:D

解决您的问题:

from tkinter import *
import tkinter as tk

def question():
    window=tk.Tk()
    window.geometry('200x125')
    window.title('Test')

    q1=tk.Label(window, text="Enter your question")
    e1=tk.Entry(window)
    e2=tk.Entry(window)
    b1=tk.Button(window, text="Exit", command=window.destroy)


    def Enter():
        e1_num = e1.get()
        e2.insert('0', e1_num)

    q1.pack()
    e1.pack()
    b2=Button(window, text='Enter', command=Enter)
    b2.pack()
    e2.pack()
    b1.pack()

    window.mainloop()

question()

它会是什么样子:

【讨论】:

  • 我相信end-1cText一起使用,为什么不使用e1.delete(0,END)呢?
  • 我不确定,你能看看吗?我现在不在系统上
  • 是的,当然:) 我看看
  • 好吧,(0,END) 适用于 Entry,('1.0','end-1c') 适用于文本框。我会确保纠正我的答案。
  • 所以我已将代码更改为此,但我仍然无法使用消息框。 def question(): window=tk.Tk() q1=tk.Label(window, text="enter your question") e1=tk.Entry(window, text="the number of your answer ") b1=tk.Button(window, text="exit", command=window.destroy) q1.grid(row=1, column=1) e1.grid(row=2, column=1) b1.grid(row=3, column=1) e1_num=e1.get()
猜你喜欢
  • 1970-01-01
  • 2016-09-13
  • 2018-06-03
  • 2016-11-06
  • 2011-11-16
  • 2013-01-27
  • 2020-09-21
  • 1970-01-01
相关资源
最近更新 更多