擅长:python、mysql、java
<p>在创建<code>Checkbutton</code>实例时,使用相同的名称重写<code>IntVar</code>变量。在</p>
<pre><code>self.oil_change = tkinter.Checkbutton(self.top_frame, text = 'Oil Change ($30)',
variable=self.oil_change)
</code></pre>
<p>通过为<code>Checkbutton</code>实例选择其他名称来避免这种情况。实际上,没有checkbox实例引用的用例;您可以立即打包而不必保存到变量:</p>
^{pr2}$
<p>在<code>total</code>方法中还有另一个属性重写问题:该方法正在重写<code>self.total</code>;方法将被<code>int</code>对象替换。因为该方法是绑定的,不会在外部使用;因此除非您在其他地方访问<code>total</code>方法,否则不会出现任何症状,但仍然无效。在</p>
<p>我建议将<code>self.total = 0</code>改为{<cd9>},因为{<cd4>}只在方法中使用。在</p>
<pre><code>def total(self):
total = 0
if self.oil_change.get() == 1:
total += 30
if self.lube_job.get() == 1:
total += 20
if self.radiator_flush.get() == 1:
total += 40
if self.transmission_flush.get() == 1:
total += 100
if self.inspection.get() == 1:
total += 35
if self.muffler_replacement.get() == 1:
total += 200
if self.tire_rotation.get() == 1:
total += 20
tkinter.messagebox.showinfo("Your total is", total)
</code></pre>