Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Máy tính GUI đơn giản dùng Tkinter trong Python

Trong hướng dẫn này, tạo máy tính GUI đơn giản dùng module Tkinter. Tkinter là module built-in Python để phát triển ứng dụng GUI. Dễ dùng và có sẵn trong Python. Có thể trực quan hóa dữ liệu với ứng dụng GUI.

Các bước tạo máy tính GUI đơn giản:

  • Import tất cả từ Tkinter dùng *.
  • Tạo giao diện máy tính.
  • Tạo hàm nhập số vào ô input.
  • Tạo hàm xóa mọi thứ trong ô input.
  • Tạo hàm evaluate tính toán và cho kết quả biểu thức.

Ví dụ

# Import everything from tkinter
from tkinter import *

# Expression truy cập giữa các hàm
expression = ""

# Functions
def input_number(number, equation):
    global expression
    expression = expression + str(number)
    equation.set(expression)

def clear_input_field(equation):
    global expression
    expression = ""
    equation.set("Enter the expression")

def evaluate(equation):
    global expression
    try:
        result = str(eval(expression))
        equation.set(result)
        expression = ""
    except:
        equation.set("Enter a valid expression")
        expression = ""

# Tạo GUI
def main():
    window = Tk()
    window.title("Calculator")
    window.geometry("325x175")
    equation = StringVar()
    input_field = Entry(window, textvariable=equation)
    input_field.place(height=100)
    input_field.grid(columnspan=4, ipadx=100, ipady=5)
    equation.set("Enter the expression")

    # Tạo nút bấm và đặt vị trí
    _1 = Button(window, text='1', fg='white', bg='black', bd=0,
                command=lambda: input_number(1, equation), height=2, width=7)
    _1.grid(row=2, column=0)
    _2 = Button(window, text='2', fg='white', bg='black', bd=0,
                command=lambda: input_number(2, equation), height=2, width=7)
    _2.grid(row=2, column=1)
    _3 = Button(window, text='3', fg='white', bg='black', bd=0,
                command=lambda: input_number(3, equation), height=2, width=7)
    _3.grid(row=2, column=2)
    _4 = Button(window, text='4', fg='white', bg='black', bd=0,
                command=lambda: input_number(4, equation), height=2, width=7)
    _4.grid(row=3, column=0)
    _5 = Button(window, text='5', fg='white', bg='black', bd=0,
                command=lambda: input_number(5, equation), height=2, width=7)
    _5.grid(row=3, column=1)
    _6 = Button(window, text='6', fg='white', bg='black', bd=0,
                command=lambda: input_number(6, equation), height=2, width=7)
    _6.grid(row=3, column=2)
    _7 = Button(window, text='7', fg='white', bg='black', bd=0,
                command=lambda: input_number(7, equation), height=2, width=7)
    _7.grid(row=4, column=0)
    _8 = Button(window, text='8', fg='white', bg='black', bd=0,
                command=lambda: input_number(8, equation), height=2, width=7)
    _8.grid(row=4, column=1)
    _9 = Button(window, text='9', fg='white', bg='black', bd=0,
                command=lambda: input_number(9, equation), height=2, width=7)
    _9.grid(row=4, column=2)
    _0 = Button(window, text='0', fg='white', bg='black', bd=0,
                command=lambda: input_number(0, equation), height=2, width=7)
    _0.grid(row=5, column=0)
    plus = Button(window, text='+', fg='white', bg='black', bd=0,
                  command=lambda: input_number('+', equation), height=2, width=7)
    plus.grid(row=2, column=3)
    minus = Button(window, text='-', fg='white', bg='black', bd=0,
                   command=lambda: input_number('-', equation), height=2, width=7)
    minus.grid(row=3, column=3)
    multiply = Button(window, text='*', fg='white', bg='black', bd=0,
                      command=lambda: input_number('*', equation), height=2, width=7)
    multiply.grid(row=4, column=3)
    divide = Button(window, text='/', fg='white', bg='black', bd=0,
                    command=lambda: input_number('/', equation), height=2, width=7)
    divide.grid(row=5, column=3)
    equal = Button(window, text='=', fg='white', bg='black', bd=0,
                   command=lambda: evaluate(equation), height=2, width=7)
    equal.grid(row=5, column=2)
    clear = Button(window, text='Clear', fg='white', bg='black', bd=0,
                   command=lambda: clear_input_field(equation), height=2, width=7)
    clear.grid(row=5, column=1)

    window.mainloop()

if __name__ == '__main__':
    main()

Kết quả

Chạy chương trình trên cho máy tính đơn giản:

Máy tính GUI đơn giản dùng Tkinter trong Python

Kết quả biểu thức sau khi nhấn nút =:

Máy tính GUI đơn giản dùng Tkinter trong Python

Kết luận

Nếu có thắc mắc, hãy đề cập ở phần comment.