我尝试在谷歌中找到解决方案,但谷歌中的所有解决方案都不适合我,也许在这里我得到了正确的答案。
我有以下代码:
from tkinter import *
class gui_main:
def __init__(self):
self.win_about = Tk() #creat new windows
self.win_about.title("About software") # Get title to new windows -> "About software"
self.win_about.geometry("400x120+600+200") # Get size to window
self.win_about.resizable(width=False, height=False) # Off option Increase / decrease window
lab = Label(self.win_about, text="""
welcome to app
For Enter to app click on button Next.
""", justify='center') # Create new text in the window
lab.place(x=-18, y=-11) # Position of text in window (x - up/down , y - left/right)
btn_next = Button(self.win_about, text="Next", fg="red", command=gui_main.screen_menu()) # Create new button
btn_next.place(x=350, y=90) # Position of button in window (x - up/down , y - left/right)
btn_exit = Button(self.win_about, text="Exit", fg="red", command=self.win_about.destroy) # Create new button
btn_exit.place(x=10, y=90) # Position of button in window (x - up/down , y - left/right)
self.win_about.mainloop() # Run the cod in loop
def screen_menu(self):
self.win_menu = Tk()
self.win_menu.title("Menu")
self.win_menu.geometry("500x500+400+400")
self.win_about.destroy()
self.win_menu.mainloop()
if __name__ == "__main__":
g = gui_main()
g.win_about()
我得到了这个错误:
回溯(最后一次调用):文件“位置文件”,第42行,在g=gui_main()文件“位置文件”的第26行,在init btn_next=按钮(self.win_about,text=“next”,fg=“red”,command=gui_main.screen_menu())#创建新按钮类型错误:screen_menu()缺少1个必需的位置参数:“self”
如果需要帮助,我希望能找到任何解决办法
从按钮命令中删除括号
,并参考self
,而不是gui\u main
btn_next = Button(self.win_about, text="Next", fg="red", command=self.screen_menu) # Create new button
您要传递的是可调用的
本身,而不是gui\u main.screen\u菜单的返回值
问题是你应该使用自己
而不是类名,除了我更喜欢的,许多人更喜欢在命令=
中使用lambda
方法。在类中,你必须用调用每个方法和变量除此之外,我还对你的代码做了一些修改。你不需要调用
g.about_screen()
,因为你在def中运行
method.因为它在初始化类对象时已经运行了g=class_name();main循环()
__init__:
from tkinter import *
class gui_main:
def __init__(self):
self.win_about = Tk() #creat new windows
self.win_about.title("About software") # Get title to new windows -> "About software"
self.win_about.geometry("400x120+600+200") # Get size to window
self.win_about.resizable(width=False, height=False) # Off option Increase / decrease window
lab = Label(self.win_about, text="""
welcome to app
For Enter to app click on button Next.
""", justify='center') # Create new text in the window
lab.place(x=-18, y=-11) # Position of text in window (x - up/down , y - left/right)
btn_next = Button(self.win_about, text="Next", fg="red", command=lambda:self.screen_menu()) # Create new button
btn_next.place(x=350, y=90) # Position of button in window (x - up/down , y - left/right)
btn_exit = Button(self.win_about, text="Exit", fg="red", command=lambda:self.quit()) # Create new button
btn_exit.place(x=10, y=90) # Position of button in window (x - up/down , y - left/right)
self.win_about.mainloop() # Run the cod in loop
def quit(self):
self.win_about.quit()
def screen_menu(self):
self.win_menu = Tk()
self.win_menu.title("Menu")
self.win_menu.geometry("500x500+400+400")
# self.win_about.destroy()
self.win_menu.mainloop()
if __name__ == "__main__":
g = gui_main()
问题内容: 我是python新手,碰壁了。我遵循了一些教程,但无法克服错误: 我检查了一些教程,但似乎与我的代码没有什么不同。我唯一能想到的是python 3.3需要不同的语法。 主要技巧: 泵类: 如果我正确理解,“自我”将自动传递给构造函数和方法。我在这里做错了什么? 我正在将Windows 8与python 3.3.2一起使用 问题答案: 你需要在此处实例化一个类实例。 采用 小例子
我是matplotlib的新手,我试图将文本设置为图形中的一个点,但我有错误: Traceback(最近一次调用):文件main.py,第239行,在main()文件main.py,第232行,在mainp.show_graphic_ortg_drtg()文件/home/josecarlos/Workspace/python/进程/process.py,第363行,show_graphic_ort
我无法通过错误: 我检查了几个教程,但似乎没有什么不同于我的代码。我唯一能想到的是Python3.3需要不同的语法。 如果我理解正确,会自动传递给构造函数和方法。我做错了什么?
我对Python非常陌生,现在我有了第一个真正的问题:我想写一个电子邮件程序,但是我不能使用类来发送邮件。我看到了很多这些错误的答案,但没有一个真正适合我。以下是代码: PS:很抱歉我的英语不好,我是一名德国学生,这就是为什么所有变量和类的名称都是用德语写的,希望这不是问题:)
我是Python的新手,我正在尝试学习如何使用类。有人知道这怎么不起作用吗?任何关于关键字“self”的额外提示都将不胜感激。 代码: 错误:
问题内容: 我正在开发一个游戏作为附带项目,很有趣,但是遇到了这个错误,我真的不知道为什么会发生… 这是代码: 我这样称呼它: 我得到的错误是: 有任何想法吗? 问题答案: 您不应直接调用类方法,而应创建该类的实例: 要详细说明该错误,您将得到: TypeError:turn()缺少1个必需的位置参数:“ playerImages” 这是因为需要第一个参数()的实例。类方法总是将实例作为第一个参数