Python “错误”__init_quo()接受2到3个位置参数,但给出了4个;当我只有3个参数时

Python “错误”__init_quo()接受2到3个位置参数,但给出了4个;当我只有3个参数时,python,tkinter,Python,Tkinter,好的,我正在尝试制作一个工具提示,自从我尝试制作测试工具提示后,我在尝试绑定它的下拉框中遇到了一个错误。 我试着给它一些字符串,而不是列表。 我对这些东西很陌生,所以我不知道这里发生了什么 #Here I import tKinter to allow myself to create a UI from tkinter import * from tkinter.tix import * #This code creates the window. root = Tk() #This is

好的,我正在尝试制作一个工具提示,自从我尝试制作测试工具提示后,我在尝试绑定它的下拉框中遇到了一个错误。 我试着给它一些字符串,而不是列表。 我对这些东西很陌生,所以我不知道这里发生了什么

#Here I import tKinter to allow myself to create a UI
from tkinter import *
from tkinter.tix import *

#This code creates the window.
root = Tk()

#This is a list of options for your government's control over the economy of your nation
econcontrol = ["Laissez Faire", "Some Government Intervention", "State Capitalism", "Planned Economy"]
econlaw = StringVar()
econlaw.set(econcontrol[0])

#Drop down box
dropdown = OptionMenu(root, econlaw, econcontrol)
dropdown.pack()

#tooltip
tip = Balloon(root)

#bind tooltip to thing
tip.bind_widget(dropdown, balloonmsg="Hello?")


#This code makes the window stay up.
root.mainloop()

您的问题在于tkinter.tix import*中的代码
,您应该将其替换为:

from tkinter.tix import Balloon 
# Or
import tkinter.tix # then tkinter.tix.Balloon(root)
但这并不能完全解决您的所有问题,因为从3.6版开始,
tix
就没有维护,所以当您尝试初始化它时,工具提示会给您一个错误。您可以在这里使用
Pmw
工具提示或创建自己的工具提示


您可以看到
Pmw.Balloon的一个示例,也可以看到如何在其下方创建自己的工具提示。

请将您的问题包括在调试细节中。这里有一个有用的例子,这可能是为什么不使用x import*
中的
的一个例子。正确的调用应该是
选项菜单(root,econlaw,*econcontrol)
,尽管我没有立即看到给定错误消息的来源
OptionMenu
要求容器、变量、初始值和任何附加值都作为单独的参数
*econcontrol
在这里单独起作用,因为
econcontrol
的第一个元素也是最初选择的值。更具体地说,错误消息来自
tkinter.tix.OptionMenu
,而不是
tkinter.OptionMenu
,您正在用另一条导入语句覆盖一条导入语句。