所以我可以用类做一些 C++ 控制台的东西(我认为没什么太花哨的),然后从 Python(很棒的语言,就像 C++ 没有后顾之忧)和 Tkinter 开始。
问题是我真的不知道带有 GUI 的程序通常是如何构造的。我知道您必须将界面与内部工作分开,但仅此而已。作为一个例子,我正在开发一个将 Excel 表转换为 LaTeX 表的小应用程序,到目前为止我有这个:
from Tkinter import *
class ExcelToLateX:
def __init__(self,master):
self.convert = Button(master,text="Convert",command=self.Conversion)
self.convert.pack(side=BOTTOM,fill=X)
self.input=Input(master,40)
self.output=Output(master,40)
def Conversion(self):
self.output.Write(self.input.Read())
class Input:
def __init__(self,master,x):
self.u=Text(master,width=x)
self.u.pack(side=LEFT)
self.u.insert(1.0,"Paste Excel data here...")
def Read(self):
return self.u.get(1.0,END)
class Output:
def __init__(self,master,x):
self.v=Text(master,width=x)
self.v.pack(side=RIGHT)
self.v.insert(1.0,"LaTeX code")
def Write (self,input):
self.input=input
if self.v.get(1.0,END)=="":
self.v.insert(1.0,self.input)
else:
self.v.delete(1.0,END)
self.v.insert(1.0,self.input)
#Test script
root=Tk()
Window=ExcelToLateX(root)
root.mainloop()
所以我有两个可以读取和写入内容的 Text 小部件和一个(目前)空转换类,它将获取 Excel 表格并输出 LaTeX 代码。我不知道这是否是要走的路(因此感谢任何评论/提示)。
所以简而言之,我有两个问题:
是否有任何广为人知的来源提供有关具有 GUI 的程序的结构的信息?(最好是 Python 和 Tkinter,因为这就是我正在做的事情,尽管它可能更通用(跨语言))
我当前的应用程序在结构方面有什么好处,如果没有,有哪些经验法则和我可以改进的地方?