【问题标题】:Python GUI - Calculator drop-down menu [closed]Python GUI - 计算器下拉菜单 [关闭]
【发布时间】:2018-10-15 09:47:05
【问题描述】:

我需要创建一个基本的整数计算器程序,它使用两个条目、一个组合框、两个标签和一个按钮来进行基本计算,如下图所示。组合框应具有加法、减法和乘法选项,分别显示为“+”、“-”和“*”。

布局网格的第 0 行必须分别在第 0 到第 2 列中包含一个条目、组合框和另一个条目。还必须在某处显示结果值的标签,可选地在等号前面加上如下图所示。该按钮必须包含文本“计算”。您可以假设只有整数被输入到条目中。

Counter GUI的布局如图here

创建按钮计算器没有问题。我的问题是如何获得如图所示的工作 gui。有什么想法吗?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    费了些力气,但还是这样:

    from tkinter import *
    from tkinter.ttk import *
    
    def left_side():
        """Left """
        global left_entry, right_entry, answer_label, integer_combo
        left_entry.get()
    
    def right_side():
        """Right"""
        global left_entry, right_entry, answer_label, integer_combo
        right_entry.get()
    
    def combo_calc():
        """Combobox basic Calculator"""
        global left_entry, right_entry, answer_label, integer_combo
    
        if integer_combo.get() == "+":
            answer_label['text'] = str(int(left_entry.get()) + int(right_entry.get()))
        elif integer_combo.get() == "-":
            answer_label['text'] = str(int(left_entry.get()) - int(right_entry.get()))
        elif integer_combo.get() == "*":
            answer_label['text'] = str(int(left_entry.get()) * int(right_entry.get()))
    
    def main():
        """Runs the main GUI"""
        global left_entry, right_entry, answer_label, integer_combo
    
        window = Tk()
        integer_options = ["+", "-", "*"]
        integer_combo = Combobox(window,
                                 values=integer_options)
        integer_combo.set("+")
        integer_combo.grid(row=0, column=1)
        left_entry = Entry(window)
        left_entry.grid(row=0, column=0)
        right_entry = Entry(window)
        right_entry.grid(row=0, column=2)
        calc_button = Button(window, text='Calculate', command=combo_calc)
        calc_button.grid(row=1, column=1)
        equals_label = Label(window, text="=")
        equals_label.grid(row=0,column=3)
        answer_label = Label(window)
        answer_label.grid(row=0, column= 4)
    
        window.mainloop()
    main()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 2019-12-05
      • 2015-11-12
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      相关资源
      最近更新 更多