参考 tkinter 这个警告是啥意思?
Posted
技术标签:
【中文标题】参考 tkinter 这个警告是啥意思?【英文标题】:In refrence to tkinter what does this warning mean?参考 tkinter 这个警告是什么意思? 【发布时间】:2020-05-12 23:05:38 【问题描述】:Warning here 请参阅图片中代码底部的警告。
import tkinter as tk
from tkinter import ttk
from tkinter import font
try:
from ctypes import windll
windll.shcore.SetDpiAwareness(1)
except Exception as e:
pass
class DistanceConvertor(tk.Tk):
def __init__(self, **args, **kwargs):
super().__init__(**args, **kwargs)
self.title('Distance Convertor')
self.geometry('600x600')
self.resizable(False, False)
self.frame = MetersToFeet(self, padding=(60, 30))
self.frame.grid()
self.bind('<Return>', self.frame.calculate_feet)
self.bind('KP_Enter', self.frame.calculate_feet)
class MetersToFeet(ttk.Frame):
def __init__(self, container, **kwargs):
super().__init__(container, **kwargs)
self.feet_value = tk.StringVar
self.metres_value = tk.StringVar
meters_label = ttk.Label(self, text ='Metres:')
meters_input = ttk.Entry(self, width=10, textvariable=self.metres_value)
feet_label = ttk.Label(self, text='Feet:')
feet_display = ttk.Label(self, textvariable=self.feet_value)
calc_button = ttk.Button(self, text='CALCULATE', command=self.calculate_feet)
meters_label.grid(column=0, row=1, sticky='W')
meters_input.grid(column=0, row=1, sticky='E')
feet_label.grid(column=1, row=0, sticky='W')
feet_display.grid(column=1, row=1, sticky='EW')
calc_button.grid(column=0, row=2, sticky='EW')
for child in self.winfo_children():
child._grid_configure(padx=5, pady=5)
def calculate_feet(self, *args):
try:
metres = float(self.metres_value.get())
feet = metres*3.2884
self.feet_value.set(f'feet: .3f')
except ValueError:
pass
root = DistanceConvertor()
root.columnconfigure(0, weight=1)
font.nametofont('TkDefaultFont').configure(size=15)
root.mainloop()
【问题讨论】:
这更像是一个 PyCharm 问题。 PyCharm 会警告许多可能会或可能不会引起关注的事情。也就是说,您实际上并没有在问题中描述警告,而是链接到图像。请将您的代码简化为可以重现警告的简单代码。 IE 摆脱了不需要的代码。就像你的绑定和 try/except 语句一样。 你为什么关心警告?我通常会忽略它们,因为它们不会真正影响您的程序。 【参考方案1】:按照惯例,以下划线开头的类方法被认为是“受保护的”,这意味着您永远不应该在类之外调用它们。在这种情况下,您调用的是 _grid_configure
,因此此警告建议您不要这样做。
Tkinter 小部件有一个名为 grid_configure
(不带前导下划线)的公共方法,您应该改用它。
【讨论】:
以上是关于参考 tkinter 这个警告是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
使用 PIL 在 Tkinter Canvas 小部件中嵌入图像