【发布时间】:2018-02-05 02:16:12
【问题描述】:
完全的菜鸟,认真而愤怒地与 Python 斗争......
我想做的应该很简单:
- 制作一个按钮。
- 连接那个按钮去功能。
- 点击按钮 --> 运行函数。
当我们必须使用 CLASS 时问题就来了(无论我读了多少书,学习了多少,甚至花钱上课,对我来说仍然是零意义)...
我已经尝试了所有可以想象的组合,将这个小 convert() 函数放入类中,添加 self.convert 或 root.convert - 但没有一个有效。而且,我不知道为什么 - 或者接下来要尝试什么。
代码如下:
from tkinter import *
from tkinter.ttk import Frame, Button, Style
def convert():
print("clicked")
kg = entry_kg.get()
print(kg)
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI() # initiate the GUI
# -------------------------------
def initUI(self):
self.master.title("Weight Converter")
self.pack(fill=BOTH, expand=True)
# -------------------------------------
frame_kg = Frame(self) # frame for Kilograms
frame_kg.pack(fill=X)
lbl_kg = Label(frame_kg, text="Kilograms", width=16)
lbl_kg.pack(side=LEFT, padx=5, pady=5)
entry_kg = Entry(frame_kg)
entry_kg.pack(fill=X, padx=(5, 30), expand=True)
# ------------------------------------------------
frame_btn = Frame(self) # frame for buttons
frame_btn.pack(fill=BOTH, expand=True, padx=20, pady=5)
btn_convert=Button(frame_btn, text="Convert", command=convert)
btn_convert.pack(side=LEFT, padx=5, pady=5)
# -------------------------------------------
def main():
root = Tk()
root.geometry("300x200+300+200")
app = Example()
root.mainloop()
if __name__ == '__main__':
main()
我做错了什么?
怎么做才对?
一个简单的任务看似随意和无用的过度复杂化是非常令人抓狂的......
【问题讨论】:
-
请修正代码的缩进。
-
TkInter 是一个旧接口,为了向后兼容和那些真正需要自包含可执行文件的人而保留。现代代码将使用像 Flask 这样的 Web 框架并提供一个简单的 HTML 页面。当然,这意味着学习 Flask 和 HTML。
-
欢迎来到Stack Overflow。请尝试提供minimal reproducible example,而不是您当前的代码。您将更了解代码的哪些部分做了什么,并提高问题的质量以激发更好的答案。
-
@verisimilidude 我不明白这对 OP 有什么帮助。
-
对 Bryan Oakley 的丑陋代码感到抱歉。我粘贴了,希望编辑保留缩进。而且,说真的?这个编辑器不仅不能维护现有的缩进,也不能使用制表符?严重地?我们必须坐下来按空格键?致 versimilidude(伟大的名字):非常感谢您的评论。我无知 - 我正在上 Udemy 上的一门课,上面说要使用 tkinter。现在,我很生气,因为我一直在为此撕扯头发。感谢您将我指向 Flask。猜猜那是下一个谷歌...