【问题标题】:pack_configure() missing 1 required positional argument: 'self'pack_configure() 缺少 1 个必需的位置参数:'self'
【发布时间】:2021-09-22 14:22:58
【问题描述】:

我实际上不知道为什么会这样,但是 root = Label(master,text =(click)) 出了点问题 标签.pack()

但基本上这个程序所做的很简单,它只是一个点击游戏,事情是其他一切都在我试图添加一个计数器来计算用户点击了多少次点击时它不起作用

from tkinter import *
import time
from tkinter import messagebox

master = Tk()

def uiPrint():
    info()
    print("")
    print(click)
    blankLine()
Label_1 = Label(text = "Double click purchases need 50 clicks!")
Label_1.pack()



click = 0
mult = 1
dcp1 = 0




def blankLine():
    for i in range(20):
        print("")

def purchaseDoubleClicksCommand():
    global click
    global mult
    if click < 50:
        messagebox.showinfo("showinfo", "Not enough clicks!")
    elif click >= 5:
        mult = mult+1
        click = click - 50
        messagebox.showinfo("showinfo", "Double Clicks Purchased!")

def buttonCommand():
    global click
    global mult
    click += 1*(mult)
    root = Label(master,text =(click))
    Label.pack()


mainClickButton = Button(master, text="Click!", command = buttonCommand)
mainClickButton.pack()
    
purchaseDoubleClickButton = Button(master, text="Purchase Double Clicks", command = purchaseDoubleClicksCommand)
purchaseDoubleClickButton.pack()


    

master.title("Clicker!")
master.geometry("%sx%s+%s+%s" % (400,100,512,512))
mainloop()

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    您似乎正在调用一个没有活动实例的实例方法:

    Label.pack()
    

    仅适用于可从类本身调用且不需要活动实例/对象的方法,例如用@classmethod@staticmethod 装饰的方法。因此将其更改为:

    root.pack()
    

    使用实例rootself 参数将自动作为第一个参数传递,它引用root 对象本身。

    【讨论】:

    • 但是我该怎么做,然后数字堆叠在彼此下面是不是有东西可以删除以前的数字?
    • @FlamingBlizzard:这听起来像是一个您应该单独提出的问题,因为它与您调用pack 方法的问题无关。
    【解决方案2】:

    使用 root.pack() 代替 Label.pack()

    【讨论】:

    猜你喜欢
    • 2021-07-14
    • 2021-12-15
    • 2023-02-06
    • 2021-09-15
    • 2013-07-06
    • 2022-01-05
    • 2017-03-28
    • 2020-01-07
    相关资源
    最近更新 更多