expand='yes',应为类型 'int',但实际为 'str' 如何解决
时间: 2023-08-17 11:04:04 浏览: 189
`expand` 的值应为整数类型,但在您的代码中,`expand` 被赋值为字符串类型。这个错误可以通过将 `expand` 的值从字符串类型转换为整数类型来解决。
以下是修正后的示例代码:
```
from tkinter import *
class MyApp(Tk):
"""继承Tk,创建自己的桌面应用程序类"""
def __init__(self):
"""构造函数"""
super().__init__()
self.title('按钮点击计数器')
self.geometry('320x160')
self.iconbitmap('res/Tk.ico')
self.counter = IntVar() # 创建一个整型变量对象
self.counter.set(0) # 置其初值为0
label = Label(self, textvariable=self.counter, font=("Arial Bold", 50)) # 将Label和整型变量对象关联
label.pack(side='left', expand=YES, fill='both', padx=5, pady=5)
btn = Button(self, text='点我试试看', bg='#90F0F0')
btn.pack(side='right', anchor='center', fill='y', padx=5, pady=5)
btn.bind(sequence='<Button-1>', func=self.on_button) # 绑定事件和事件函数
def on_button(self, evt):
"""点击按钮事件的响应函数, evt是事件对象"""
self.counter.set(self.counter.get() + 1)
if __name__ == '__main__':
app = MyApp()
app.mainloop()
```
在上面的代码中,我将 `expand='yes'` 改为了 `expand=YES`,使用了 `tkinter` 内置的 `YES` 常量来替代字符串类型的 `'yes'`。这里的 `YES` 是一个整数值,表示为 1。这样做可以避免将字符串类型转换为整数类型,并且代码更加清晰易读。
阅读全文