为简约python脚本创建一个简单的GUI

时间:2014-03-26 12:59:23

标签: python

我写了一个小python函数,它接受了几个数字输入参数并打印了许多带语句的行,这些语句将在实验中使用,就像这个玩具示例一样:

    def myADD(x,y,z):
        res = x + y + z
        print("the result is: {0}+{1}+{2}={3}").format(x,y,z,res)

我想创建一个简约的GUI,只是一个调用myADD.py脚本的叠加层,我可以在这里填充参数x,y,z,然后点击" compute"按钮与print语句一起出现文本字段。

有没有人有模板,我正在研究TKinter,但我操纵其他模板的尝试并没有成功。

非常感谢帮助,谢谢。

2 个答案:

答案 0 :(得分:3)

Tkinter是一个很棒的选择,因为它是内置的。它非常适合这种快速简约的GUI。

这是Tkinter应用程序的基本框架,可以向您展示它的简单性。您需要做的就是添加您的功能,方法是将其导入或包含在同一个文件中:

import Tkinter as tk

class Example(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)

        self.parent = parent
        self.entry = {}

        # the basic layout is a form on the top, and
        # a submit button on the bottom
        form = tk.Frame(self)
        submit = tk.Button(self, text="Compute", command=self.submit)
        form.pack(side="top", fill="both", expand=True)
        submit.pack(side="bottom")

        # this fills in the form with input widgets for each parameter
        for row, item in enumerate(("x", "y", "z")):
            label = tk.Label(form, text="%s:"%item, anchor="w")
            entry = tk.Entry(form)
            label.grid(row=row, column=0, sticky="ew")
            entry.grid(row=row, column=1, sticky="ew")
            self.entry[item] = entry

        # this makes sure the column with the entry widgets
        # gets all the extra space when the window is resized
        form.grid_columnconfigure(1, weight=1)

    def submit(self):
        '''Get the values out of the widgets and call the function'''
        x = self.entry["x"].get()
        y = self.entry["y"].get()
        z = self.entry["z"].get()
        print "x:", x, "y:", y, "z:", z


if __name__ == "__main__":
    # create a root window
    root = tk.Tk()

    # add our example to the root window
    example = Example(root)
    example.pack(fill="both", expand=True)

    # start the event loop
    root.mainloop()

如果您希望结果显示在窗口中,您可以创建Label窗口小部件的另一个实例,并在执行计算时通过执行self.results_label.configure(text="the result")之类的操作来更改它的值

答案 1 :(得分:2)

Tkinter通常是一个好的开始,因为它与Python捆绑在一起(tutorial)。

那就是说,Tk很老了,因此有时候很“奇怪”。如果您想要更现代的UI,请查看PyQt。它基于Qt,但默认情况下不附带Python,所以你必须手动安装它。