作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我只是想用 gui 制作一个骰子滚轮。我创建了一个弹出窗口,其中显示 1 到 6 之间的随机数 random.randint(1,6)
。我将它分配给一个名为 number number = random.randint(1,6)
的变量,但它总是给出相同的数字。我只是需要它在我单击按钮时不总是吐出相同的数字
def popup_showinfo():
showinfo("You rolled", number)
number = random.randint(1,6)
class Application(ttk.Frame):`
def __init__(self, master):
tk.Frame.__init__(self, master)
self.pack()
self.button_showinfo = ttk.Button(self, text="Roll", command=popup_showinfo)
self.button_showinfo.pack()
root = tk.Tk()
app = Application(root)
root.mainloop()
最佳答案
好吧,你的问题还不太完整,但我想我明白你需要什么了。
我的以下回答将有两个目的。一是向您展示 Minimal, Complete, and Verifiable example代码看起来像。第二是产生您正在寻找的效果。
您可以使用类内部的方法(类函数)更好地管理事物,而不是在类外部使用函数。因此,让我们将该弹出函数移到类中。接下来我们可以用您的随机整数更新标签。请记住您现在设置代码的方式,随机数只会在程序启动时产生一次。相反,您希望在方法中包含随机 int 代码,以便每次运行该方法时都会创建一个新数字。
通过直接向类添加标签并从新方法调用对标签的更新,我们可以滚动 1 到 6 之间的数字。
import tkinter as tk
import tkinter.ttk as ttk
import random
class Application(ttk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
self.showinfo_label = ttk.Label(self)
self.showinfo_label.pack()
self.button_showinfo = ttk.Button(self, text="Roll", command=self.showinfo).pack()
def showinfo(self):
number = random.randint(1,6)
self.showinfo_label.config(text="You rolled {}".format(number))
root = tk.Tk()
app = Application(root).pack()
root.mainloop()
请记住,当我们谈论 MCVE 时,我上面的代码就是我们正在寻找的内容。产生影响或至少重现错误所需的最低限度。
这包括所有必需的导入、根和 mainloop() 代码以及执行特定操作所需的少量代码。
更新:
看来您确实尝试使用 Tkinter 消息框方法中的 showinfo
方法,因此这里也是一个使用该方法的示例。
import random
import tkinter as tk
import tkinter.ttk as ttk
from tkinter.messagebox import showinfo
class Application(ttk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
self.button_showinfo = ttk.Button(self, text="Roll", command=self.showinfo).pack()
def showinfo(self):
number = random.randint(1,6)
showinfo("You rolled ", "{}".format(number))
root = tk.Tk()
app = Application(root).pack()
root.mainloop()
关于python - 我如何在弹出窗口中刷新答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51366170/
我是一名优秀的程序员,十分优秀!