self.num_entry 存储的是一个字符串类型的变量,因为 tk.Entry 组件默认返回用户输入的字符串。如果需要将其转换成整数类型,可以使用 int() 函数进行转换。写成代码
时间: 2024-02-22 18:00:22 浏览: 17
下面是将 `self.num_entry` 转换成整数类型的代码示例:
```
num = int(self.num_entry.get())
```
这里使用了 `get()` 方法来获取用户输入的字符串,并使用 `int()` 函数将其转换成整数类型的变量 `num`。
相关问题
def create_rul(self): # 村庄数目输入框 self.num_label = tk.Label(self, text="村庄数目") self.num_label.pack() self.num_entry = tk.Entry(self) self.num_entry.pack() # 可建公路数目输入框 self.edge_label = tk.Label(self, text="可建公路数目") self.edge_label.pack() self.edge_entry = tk.Entry(self) self.edge_entry.pack() def create_widgets(self): num = int(self.num_entry.get()) edge =int(self.edge_entry.get()) # 村庄名称输入框 self.village_label = tk.Label(self, text="村庄名称") self.village_label.pack() for i in range(num): self.village_entry = tk.Entry(self) self.village_entry.pack()代码检查和修订
在 `create_widgets` 函数中,获取 `num` 和 `edge` 变量的位置不正确,应该放在用户点击确认按钮之后获取,否则获取的值都是空字符串。因此,可以将 `num` 和 `edge` 变量的获取放在确认按钮的回调函数中,如下所示:
```
def create_rul(self):
# 村庄数目输入框
self.num_label = tk.Label(self, text="村庄数目")
self.num_label.pack()
self.num_entry = tk.Entry(self)
self.num_entry.pack()
# 可建公路数目输入框
self.edge_label = tk.Label(self, text="可建公路数目")
self.edge_label.pack()
self.edge_entry = tk.Entry(self)
self.edge_entry.pack()
# 确认按钮
self.confirm_button = tk.Button(self, text="确认", command=self.create_widgets)
self.confirm_button.pack()
def create_widgets(self):
# 获取村庄数目和可建公路数目
num = int(self.num_entry.get())
edge = int(self.edge_entry.get())
# 村庄名称输入框
self.village_label = tk.Label(self, text="村庄名称")
self.village_label.pack()
for i in range(num):
self.village_entry = tk.Entry(self)
self.village_entry.pack()
```
这样,在用户点击确认按钮之后才会获取 `num` 和 `edge` 变量的值,避免了获取空字符串的问题。
self.num_label = tk.Label(self, text="村庄数目") self.num_label.pack() self.num_entry = tk.Entry(self) self.num_entry.pack()强制输入整数怎么修改
您可以使用 tkinter 的 validatecommand 和 validate 选项来实现强制输入整数的功能。具体实现方式如下:
1. 定义一个函数来验证输入的内容是否为整数:
```
def validate_int(var):
if var.isdigit():
return True
else:
return False
```
2. 在创建 Entry 组件时,将 validatecommand 选项设置为 validate_int 函数,并将 validate 选项设置为 'key'。
```
self.num_entry = tk.Entry(self, validate="key", validatecommand=(self.register(validate_int), '%P'))
```
这样就可以在用户输入时验证输入内容是否为整数,如果不是就不允许输入。