喜欢编程并且只是学习Tkinter。根据Alan Gauld的在线教程中的一个例子写了这个。我期待一个1到10之间的随机数被放入标签,但我得到的似乎是一个介于4千万到5千万之间的随机数,接着是" getRandomNumber"。代码:
import random
from tkinter import *
class randomNumberApp:
def __init__(self, parent=0):
self.mainWindow = Frame(parent)
self.fTop = Frame(self.mainWindow)
self.fTop.pack(fill="both")
self.lInfo = Label(self.fTop, text="Your number is:")
self.lInfo.pack(side="left")
self.lScore = Label(self.fTop, text=self.getRandomNumber)
self.lScore.pack(side="left")
self.mainWindow.pack(fill="both")
def getRandomNumber():
ability = random.randint(1,10)
return ability
# top level
top = Tk()
app = randomNumberApp(top)
top.mainloop()
任何帮助都会很棒
答案 0 :(得分:3)
这有效:
更改为“text = self.getRandomNumber()”并缩进“def getRandomNumber(self):”因为它更像是来自OP的代码。
import random
from tkinter import *
class randomNumberApp:
def __init__(self, parent=0):
self.mainWindow = Frame(parent)
self.fTop = Frame(self.mainWindow)
self.fTop.pack(fill="both")
self.lInfo = Label(self.fTop, text="Your number is:")
self.lInfo.pack(side="left")
self.lScore = Label(self.fTop, text=self.getRandomNumber())
self.lScore.pack(side="left")
self.mainWindow.pack(fill="both")
def getRandomNumber(self):
ability = str(random.randint(1,10))
return ability
# top level
top = Tk()
app = randomNumberApp(top)
top.mainloop()
答案 1 :(得分:0)
问题在于您正在创建一个标签,并且为了它的价值,您将提供一个功能。您不希望使用函数作为标签的文本,您希望调用函数并使用函数返回的标签。
而不是:
self.lScore = Label(self.fTop, text=self.getRandomNumber)
......你需要这样做:
self.lScore = Label(self.fTop, text=self.getRandomNumber())
此外,如果要将getRandomNumber
作为方法,则需要将其定义为具有参数self
,如下例所示:
class randomNumberApp:
...
def getRandomNumber(self):
...