<p>Entry对象和所有其他小部件的<strong>grid、pack和place函数<strong>返回None</strong>。在python中,当您执行a().b()时,表达式的结果是b()返回的任何结果,因此Entry(…).grid(…)将不返回任何结果。在</p>
<p>你应该把它分成两行</p>
<blockquote>
<pre><code> self.cmb = ttk.Combobox(self.wind, width="10", values=("Local (sqllite)","MYSQL"))
self.cmb.grid (row = 0, column = 1)
</code></pre>
</blockquote>
<pre><code>class SelectDB:
def __init__(self, wind) :
self.wind = wind
self.wind.title ('MyApp')
ttk.Label(self.wind, text="Select you're Database:").grid (row = 0, column = 0)
self.cmb = ttk.Combobox(self.wind, width="10", values=("Local (sqllite)","MYSQL"))
self.cmb.grid (row = 0, column = 1)
btn = ttk.Button(text="Start", command=self.checkcmbo).grid (row = 1, column = 0)
def checkcmbo(self):
if self.cmb.get() == "Local (sqllite)":
messagebox.showinfo("What user choose", "you choose Local (sqllite)")
elif self.cmb.get() == "MYSQL":
messagebox.showinfo("What user choose", "you choose MYSQL")
else:
messagebox.showinfo("What user choose", "NOTHING")
if __name__ == '__main__':
wind = Tk()
application = SelectDB(wind)
wind.mainloop()
</code></pre>