首页 > 解决方案 > Python GUI - 计算器下拉菜单

问题描述

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

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

Counter GUI 的布局如下所示

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

标签: pythonpython-3.x

解决方案


这需要一些努力,但这里有:

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()

推荐阅读