Stringvar Python là gì

Bài viết hướng dẫn Tkinter này sẽ giúp bạn bắt đầu tìm hiểu về thư viện Tkinter dành cho Python và cung cấp cho bạn cái nhìn chuyên sâu về cách Python được sử dụng để tạo các ứng dụng Giao diện người dùng đồ họa [GUI]. Số lượng ứng dụng của Tkinter là vô tận và nó là một thư viện rất phổ biến và dễ học.

Trong Hướng dẫn Tkinter này, chúng tôi sẽ đề cập đến các khái niệm sau:

  • Giao diện người dùng đồ họa [GUI] là gì?
  • Thư viện Python để tạo GUI
  • Tkinter là gì?
  • Các nguyên tắc cơ bản của Tkinter
  • Tkinter Widgets
  • Quản lý hình học
  • Tổ chức bố cục và widget
  • Chức năng ràng buộc
  • Hình ảnh và Biểu tượng
  • Use Case - Ứng dụng Máy tính sử dụng Tkinter

Giao diện người dùng đồ họa [GUI] không là gì ngoài một ứng dụng máy tính để bàn giúp bạn tương tác với máy tính. Chúng được sử dụng để thực hiện các tác vụ khác nhau trong máy tính để bàn, máy tính xách tay và các thiết bị điện tử khác.

  • Các ứng dụng GUI như Trình chỉnh sửa văn bản được sử dụng để tạo, đọc, cập nhật và xóa các loại tệp khác nhau.
  • Các ứng dụng GUI như Sudoku, Chess và Solitaire là những trò chơi mà bạn có thể chơi.
  • Các ứng dụng GUI như Google Chrome, Firefox và Microsoft Edge được sử dụng để duyệt qua Internet .

Vì đây là phần Giới thiệu về GUI, hãy đảm bảo rằng bạn luôn theo dõi đến cuối cùng vì chúng tôi sẽ tạo ra một ứng dụng GUI thực sự đơn giản và đẹp mắt .

Vâng, đó là một sở thích cá nhân mà tôi thích GUI hơn dòng lệnh. Không phải có điều gì đó sai với dòng lệnh nhưng tôi thích các ứng dụng trực quan và tương tác hơn với nhiều hình ảnh.

Bạn thích cái nào hơn? Đi đến phần bình luận và cho tôi biết.

Tiếp theo trên blog hướng dẫn Tkinter này, chúng ta hãy xem các thư viện Python hiện có để thiết kế GUI của riêng chúng tôi.

Thư viện Python để tạo giao diện người dùng đồ họa:

Python có rất nhiều thư viện và 4 thư viện này nổi bật chủ yếu khi nói đến GUI. Có như sau:

  • Kivy
  • Python QT
  • wxPython
  • Tkinter

Tôi chắc rằng bạn cũng sẽ có quan điểm tương tự trong một thời gian nữa.

Lưu ý: Tại thời điểm này, tôi muốn đề cập rằng bạn sẽ yêu cầu một chút kiến ​​thức về Python để bắt đầu làm việc với Tkinter. Không có gì phải lo lắng nếu bạn chưa có bất kỳ kinh nghiệm lập trình nào trước đó với Python. Tôi đã tạo một hướng dẫn chuyên sâu về python dành riêng cho người mới bắt đầu mà tôi đã liên kết ở cuối blog này, tôi nhận được một số phản hồi thực sự tốt về nó vì vậy tôi khuyên các bạn nên xem khi đọc xong bài này Blog hướng dẫn Tkinter.

Tiếp theo trên blog hướng dẫn Tkinter này, hãy cùng chúng tôi kiểm tra Tkinter thực sự là gì.

Tkinter là gì?

Tkinter thực sự là một mô-đun Python có sẵn được sử dụng để tạo các ứng dụng GUI đơn giản . Đây là mô-đun được sử dụng phổ biến nhất cho các ứng dụng GUI trong Python .

Bạn không cần phải lo lắng về việc cài đặt mô-đun Tkinter vì nó đi kèm với mặc định của Python .

Tôi sẽ sử dụng phiên bản Python 3.6 cho hướng dẫn này. Vì vậy, vui lòng cập nhật Python nếu bạn đang sử dụng các phiên bản dưới đây.

Một lời khuyên khác cho các bạn là đừng sao chép mã một cách mù quáng. Cố gắng viết bằng cách sửa đổi nó theo ý muốn của bạn và sau đó quan sát và hiểu những thay đổi kết quả.

Tiếp theo trên blog hướng dẫn Tkinter này, chúng ta hãy xem các nguyên tắc cơ bản của Tkinter để có thể bắt đầu tạo GUI của riêng mình.

Nguyên tắc cơ bản của Tkinter

Hãy xem xét sơ đồ sau, nó cho thấy cách một ứng dụng thực thi trong Tkinter:

Để bắt đầu, trước tiên chúng tôi nhập mô hình Tkinter. Tiếp theo, chúng ta tạo cửa sổ chính. Chính trong cửa sổ này, chúng tôi đang thực hiện các thao tác và hiển thị hình ảnh và mọi thứ về cơ bản. Sau đó, chúng tôi thêm các widget và cuối cùng chúng tôi nhập vòng lặp sự kiện chính.

Nếu bạn để ý, có 2 từ khóa ở đây mà bạn có thể chưa biết tại thời điểm này. Đây là 2 từ khóa:

  • Vật dụng
  • Vòng lặp sự kiện chính

Kiểm tra mã sau để rõ ràng hơn:

import tkinter window = tkinter.Tk[] # to rename the title of the window window.title["GUI"] # pack is used to show the object in the window label = tkinter.Label[window, text = "Hello World!"].pack[] window.mainloop[]

Ví dụ: Microsoft Word được hiển thị trên tab tiêu đề khi bạn mở một ứng dụng word, đúng không? Tương tự ở đây chúng tôi gọi nó là GUI. Chúng tôi có thể gọi nó là bất cứ thứ gì chúng tôi muốn dựa trên yêu cầu.

Cuối cùng, chúng tôi có một nhãn. Một nhãn không là gì ngoài những gì đầu ra cần được hiển thị trên cửa sổ. Trong trường hợp này, như bạn có thể thấy, đó là hello world.

Kiểm tra đầu ra cho mã trên:

Tiếp theo trên blog hướng dẫn Tkinter này, chúng ta hãy xem xét một loạt các widget do Tkinter cung cấp.

Tkinter Widgets

Câu hỏi đầu tiên chúng ta cần đặt ra là widget là gì?

Các widget giống như các phần tử trong HTML . Bạn sẽ tìm thấy các loại vật dụng khác nhau với các loại phần tử khác nhau trong Tkinter .

Hãy xem phần giới thiệu ngắn gọn về tất cả các widget này trong Tkinter.

Hãy xem sơ đồ này để biết danh sách các widget Tkinter được sử dụng chính:

  • Canvas - Canvas được sử dụng để vẽ các hình dạng trong GUI của bạn .
  • Nút - Tiện ích nút được sử dụng để đặt các nút trong Tkinter .
  • Checkbutton - Checkbutton được sử dụng để tạo ra các nút kiểm tra trong ứng dụng của bạn. Lưu ý rằng bạn có thể chọn nhiều tùy chọn cùng một lúc.
  • Entry - widget Entry được sử dụng để tạo các trường đầu vào trong GUI .
  • Khung - Khung được sử dụng làm thùng chứa trong Tkinter .
  • Nhãn - Nhãn được sử dụng để tạo các tiện ích con một dòng như văn bản , hình ảnh , v.v.
  • Menu - Menu được sử dụng để tạo menu trong GUI .

Hãy để chúng tôi đi qua tất cả các widget này để hiểu rõ hơn.

Xin lưu ý rằng tôi sẽ không làm bạn choáng ngợp với cú pháp hoàn chỉnh cho mọi tiện ích con. Các đoạn mã là quá đủ để giúp việc học của bạn dễ dàng hơn và tôi đã làm điều này chỉ để bạn có thể tránh bất kỳ loại nhầm lẫn hoặc mơ hồ nào trong khi học.

Tiện ích đầu tiên chúng tôi sẽ kiểm tra là tiện ích nhãn.

Tiện ích Nhãn:

Như đã đề cập trước đó, nhãn được sử dụng để tạo văn bản và hình ảnh và tất cả những thứ đó nhưng điều quan trọng cần lưu ý là nó chỉ được định nghĩa một dòng duy nhất.

Đây là đoạn mã:

l1 = Label [window, text="edureka!“ font=["Arial Bold", 50]] l1.grid [column=0, row=0]

Kiểm tra đầu ra bên dưới:

Có một thứ được gọi là hàm hình học. Chúng ta cũng sẽ xem xét vấn đề này trong các phần tới.

Tại thời điểm này, tất cả những gì bạn cần biết là về cơ bản nó được sử dụng để thay đổi kích thước góa phụ và thiết lập theo yêu cầu của chúng tôi.

Kiểm tra đoạn mã bên dưới:

l1 = Label [window, text="edureka!“ font=["Arial Bold", 50]] window.geometry['350x200'] l1.grid [column=0, row=0]

Và đây là đầu ra cho cùng một:

Tiện ích tiếp theo mà chúng ta sẽ kiểm tra trên blog hướng dẫn Tkinter này là tiện ích nút.

Tiện ích nút:

Tiện ích nút rất giống với tiện ích nhãn. Chúng tôi tạo một biến và sử dụng cú pháp tiện ích con để xác định nội dung của nút.

Kiểm tra đoạn mã dưới đây:

bt = Button [window, text="Enter"] bt.grid [column=1, row=0]

Đầu ra của mã như sau:

Chúng tôi cũng có thể thay đổi nền trước cho một nút hoặc bất kỳ tiện ích nào khác. Chúng tôi sẽ sử dụng tham số FG như được hiển thị trong mã. Tương tự, màu nền cũng có thể được thay đổi bằng cách sử dụng thuộc tính BG.

Kiểm tra mã:

bt = Button [window, text="Enter", bg="orange", fg="red"] bt.grid [column=1, row=0]

Theo kết quả đầu ra mà chúng ta nhận được, nền trước của chúng ta là văn bản có màu đỏ như đã xác định và nền là màu cam như chúng ta đã thiết lập bằng tham số bg.

Vì vậy, tại thời điểm này, chúng tôi có một nút có thể nhấp. Điều gì sẽ xảy ra khi chúng ta thực sự tiếp tục và nhấp vào nó?

Kiểm tra đoạn mã này:

def clicked[]: l1.configure [text="Button was clicked !!"] bt = Button [window, text=“Enter”, command=clicked]

Vì mục đích đó, chúng tôi có một chức năng được gọi là đã nhấp, chúng tôi đang hiển thị một tin nhắn văn bản nói rằng nút đã được nhấp.

Chúng ta sẽ cần thêm một tham số gọi là lệnh trong định nghĩa nút như hình.

Khá dễ dàng, phải không?

Tiện ích tiếp theo mà chúng tôi sẽ kiểm tra trên blog hướng dẫn Tkinter này là tiện ích nhập cảnh.

Entry Widget:

Một widget mục nhập được sử dụng để làm gì?

Nó được sử dụng để tạo các trường đầu vào trong GUI để nhận đầu vào dạng văn bản.

Kiểm tra mã ví dụ được hiển thị bên dưới:

txt = Entry[window,width=10] txt.grid[column=1, row=0] def clicked[]: res = "Welcome to " + txt.get[] l1.configure[text= res] bt = Button [window, text=“Enter”, command=clicked]

Điều gì sẽ xảy ra khi nút được nhấp?

Chà, chúng tôi có một thông báo có nội dung 'Chào mừng đến với' và sau đó bất cứ thứ gì được nhập vào vùng văn bản sẽ được nối với phần này và được in ra.

Kiểm tra đầu ra. Chúng tôi đã nhập Đào tạo Python và vì vậy nó hiển thị chào mừng bạn đến với khóa đào tạo Python.

Đầu ra:

Tất cả các vật dụng này thực sự đơn giản và hơn thế nữa chúng luôn rất hữu ích.

Tiện ích tiếp theo mà chúng ta sẽ kiểm tra trên blog hướng dẫn Tkinter này là tiện ích combobox.

Combobox Widget

Bạn có thể đoán nhanh tiện ích combobox là gì không?

Nó chỉ là một menu thả xuống với các tùy chọn nhất định.

Đây là đoạn mã:

from tkinter.ttk import * combo = Combobox[window] combo['values']= [1, 2, 3, 4, 5, "Text"] combo.current[3] combo.grid[column=0, row=0]

Nó được định nghĩa bằng cách sử dụng dấu ngoặc kép và sau đó chúng tôi sẽ đặt đầu vào đã chọn. Tiếp theo đó, chúng ta có chức năng lưới để đặt widget trên cửa sổ.

Vì vậy, chúng tôi có menu thả xuống và nó hiển thị tất cả những gì chúng tôi đã xác định trong mã. Đây là đầu ra cho mã:

Một tiện ích dễ dàng khác, đã xong!

Tiện ích tiếp theo mà chúng tôi sẽ kiểm tra trên blog hướng dẫn Tkinter này là tiện ích Nút kiểm tra.

Checkbutton Widget:

Nút kiểm tra được sử dụng rộng rãi ở hầu hết các trang web.

Vì vậy, về cơ bản chúng ta sử dụng lớp nút kiểm tra để tạo tiện ích con.

Đoạn mã:

chk_state = BooleanVar[] chk_state.set [True] chk = Checkbutton[window, text=‘Select', var=chk_state] chk.grid[column=0, row=0]

Nhưng đây không phải là một biến python chuẩn, đúng không? Không có gì phải lo lắng, đây là một biến Tkinter.

Theo mặc định, chúng tôi giữ trạng thái đã đặt là true, có nghĩa là nút đã được chọn. Và tiếp theo, chúng tôi chuyển chk_state đến lớp nút kiểm tra để thiết lập trạng thái kiểm tra cho chúng tôi.

Đầu ra:

Kiểm tra đầu ra ở trên. Vì vậy, chúng tôi có một tiện ích nút kiểm tra thực sự đơn giản với một văn bản nhất định.

Vì vậy, những vật dụng dễ dàng khác như thế này có sẵn là gì?

Tiện ích tiếp theo mà chúng ta sẽ kiểm tra trên blog hướng dẫn Tkinter này là tiện ích nút radio.

Tiện ích nút radio:

Tiện ích nút radio được sử dụng rộng rãi và tôi có thể đảm bảo với bạn rằng bạn đã từng thấy và sử dụng tiện ích này trước đây.

Chúng tôi sẽ sử dụng lớp radiobutton để thêm tiện ích.

Hãy xem mã:

rad1 = Radiobutton[window, text=Python', value=1] rad2 = Radiobutton[window, text=Java', value=2] rad3 = Radiobutton[window, text=Scala', value=3] rad1.grid[column=0, row=0] rad2.grid[column=1, row=0] rad3.grid[column=2, row=0]

Tuy nhiên, giá trị phải là duy nhất nhưng dữ liệu dạng văn bản có thể giống nhau. Ở đây chúng tôi đã xem xét Python, Java và Scala. Nó có thể là bất cứ điều gì bạn muốn nó dựa trên các yêu cầu.

Tương tự, chức năng lưới được sử dụng để đặt tiện ích trên cửa sổ.

Đầu ra:

Từ đầu ra ở trên, hãy lưu ý rằng không giống như nút kiểm nơi bạn có thể thử chọn nhiều nút, ở đây trong trường hợp nút radio, bạn chỉ có thể chọn một nút tại một thời điểm.

Tiện ích tiếp theo mà chúng ta sẽ kiểm tra trên blog hướng dẫn Tkinter này là tiện ích văn bản cuộn.

Tiện ích văn bản được cuộn:

Một tiện ích tuyệt vời khác mà chúng tôi có là tiện ích văn bản cuộn. Điều này có thể được thêm vào bằng cách sử dụng lớp văn bản cuộn.

Mã:

from tkinter import scrolledtext txt = scrolledtext.ScrolledText[window, width=40,height=10]

Bạn có thể đặt nội dung văn bản cuộn bằng cách sử dụng phương pháp chèn. Cú pháp khá đơn giản. Chúng ta cần sử dụng txt.insert với thông báo là tham số.

Đầu ra:

Tiện ích tiếp theo mà chúng ta sẽ kiểm tra trên blog hướng dẫn Tkinter này là tiện ích hộp thư.

Tiện ích Hộp thư:

Hãy để chúng tôi nhanh chóng đi qua tiện ích đơn giản này. Chúng tôi cũng đang sử dụng thư viện hộp thư ở đây.

Mã:

from tkinter import messagebox messagebox.showinfo['Message title’, 'Message content']

Đây là nơi mọi thứ trở nên thú vị. Hãy xem đoạn mã dưới đây:

def clicked[]: messagebox.showinfo['Message title', 'Message content'] btn = Button[window,text=‘ENTER', command=clicked]

Đây là kết quả:

Khá dễ dàng, phải không?

Cuối cùng nhưng không kém phần quan trọng, chúng tôi sẽ kiểm tra tiện ích Spinbox trong hướng dẫn Tkinter này.

SpinBox Widget:

Spinbox cũng là một widget được sử dụng rộng rãi. Có hai tab, tab cuộn lên và xuống. Đây là cách nó khác với widget cuộn xuống. Ở đây, số tĩnh sẽ thay đổi trong một phạm vi giá trị nhất định.

Mã:

spin = Spinbox[window, from_=0, to=100, width=5]

Chiều rộng về cơ bản là đặt kích thước của tiện ích thành 5 khoảng trắng ký tự. Nhưng vì đang làm từ 0 đến 100, 3 là đủ cho chúng tôi nhưng tôi đã tiếp tục và đặt 5 chỉ để nó có vẻ tốt.

Bạn có thể đặt bất cứ thứ gì bạn muốn ở đây và nó hợp lệ nhưng hãy đảm bảo rằng nó nhiều hơn những gì mà phạm vi có thể cung cấp.

Đầu ra:

Và đó là một bản tóm tắt của các widget được sử dụng nhiều trong Tkinter.

Tiếp theo trên blog hướng dẫn Tkinter này, chúng ta cần kiểm tra quản lý hình học.

Quản lý hình học

Tất cả các vật dụng trong Tkinter sẽ có một số phép đo hình học. Các phép đo này cho phép bạn tổ chức các widget và khung chính, cửa sổ của chúng, v.v.

Tkinter có ba lớp Geometry Manager sau đây.

  • pack [] : - Nó tổ chức các widget trong khối, có nghĩa là nó chiếm toàn bộ chiều rộng có sẵn. Đó là một phương pháp tiêu chuẩn để hiển thị các widget trong cửa sổ.
  • grid [] : - Nó tổ chức các widget theo cấu trúc giống như bảng.
  • place [] : - Nó được sử dụng để đặt các widget ở một vị trí cụ thể mà bạn muốn.

Tiếp theo trên blog hướng dẫn Tkinter này, chúng ta cần kiểm tra cách chúng ta có thể sắp xếp bố cục và tiện ích.

Sắp xếp bố cục và tiện ích

Để sắp xếp bố cục trong cửa sổ , chúng ta sẽ sử dụng Frame , class. Hãy tạo một chương trình đơn giản để xem Frame hoạt động như thế nào .

Các bước: -

  • Khung được sử dụng để tạo các phân chia trong cửa sổ. Bạn có thể căn chỉnh các khung theo ý muốn với tham số bên của phương thức pack [] .
  • Nút được sử dụng để tạo một nút trong cửa sổ. Nó có một số tham số như văn bản [Giá trị của nút], fg [Màu của văn bản], bg [Màu nền]

Trong đoạn mã dưới đây, chúng tôi sử dụng để đặt trong window , top_frame , bottom_frame .

import tkinter window = tkinter.Tk[] window.title["GUI"] # creating 2 frames TOP and BOTTOM top_frame = tkinter.Frame[window].pack[] bottom_frame = tkinter.Frame[window].pack[side = "bottom"] # now, create some widgets in the top_frame and bottom_frame btn1 = tkinter.Button[top_frame, text = "Button1", fg = "red"].pack[]# 'fg - foreground' is used to color the contents btn2 = tkinter.Button[top_frame, text = "Button2", fg = "green"].pack[]# 'text' is used to write the text on the Button btn3 = tkinter.Button[bottom_frame, text = "Button2", fg = "purple"].pack[side = "left"]# 'side' is used to align the widgets btn4 = tkinter.Button[bottom_frame, text = "Button2", fg = "orange"].pack[side = "left"] window.mainloop[]

Xem ví dụ dưới đây để biết cách hoạt động của nó.

import tkinter window = tkinter.Tk[] window.title["GUI"] # creating 2 text labels and input labels tkinter.Label[window, text = "Username"].grid[row = 0] # this is placed in 0 0 # 'Entry' is used to display the input-field tkinter.Entry[window].grid[row = 0, column = 1] # this is placed in 0 1 tkinter.Label[window, text = "Password"].grid[row = 1] # this is placed in 1 0 tkinter.Entry[window].grid[row = 1, column = 1] # this is placed in 1 1 # 'Checkbutton' is used to create the check buttons tkinter.Checkbutton[window, text = "Keep Me Logged In"].grid[columnspan = 2] # 'columnspan' tells to take the width of 2 columns # you can also use 'rowspan' in the similar manner window.mainloop[]

Tiếp theo trên blog hướng dẫn Tkinter này, chúng ta cần kiểm tra một khái niệm được gọi là các hàm ràng buộc.

Chức năng ràng buộc

Gọi các hàm bất cứ khi nào một sự kiện xảy ra đề cập đến một hàm ràng buộc.

  • Trong ví dụ dưới đây, khi bạn nhấp vào nút, nó sẽ gọi một hàm có tên say_hi .
  • Hàm say_hi tạo một nhãn mới với dòng chữ Hi .
import tkinter window = tkinter.Tk[] window.title["GUI"] # creating a function called say_hi[] def say_hi[]: tkinter.Label[window, text = "Hi"].pack[] tkinter.Button[window, text = "Click Me!", command = say_hi].pack[] # 'command' is executed when you click the button # in this above case we're calling the function 'say_hi'. window.mainloop[]

Chương trình sau cũng tạo ra kết quả tương tự như chương trình trên:

import tkinter window = tkinter.Tk[] window.title["GUI"] # creating a function with an arguments 'event' def say_hi[event]: # you can rename 'event' to anything you want tkinter.Label[window, text = "Hi"].pack[] btn = tkinter.Button[window, text = "Click Me!"] btn.bind["", say_hi] # 'bind' takes 2 parameters 1st is 'event' 2nd is 'function' btn.pack[] window.mainloop[]
  1. cho nhấp chuột trái
  2. cho nhấp chuột giữa
  3. để nhấp chuột phải
  4. Ở đây, chúng ta đang ràng buộc các trái sự kiện click vào một nút . Bạn có thể liên kết nó với bất kỳ tiện ích con nào khác mà bạn muốn.
  5. Bạn sẽ có các thông số khác nhau cho các sự kiện khác nhau

Bây giờ, bạn sẽ học cách gọi một hàm cụ thể dựa trên sự kiện xảy ra.

  • Chạy chương trình sau và nhấp vào các nút trái, giữa, phải để gọi một chức năng cụ thể .
  • Chức năng đó sẽ tạo một nhãn mới với văn bản được đề cập.
import tkinter window = tkinter.Tk[] window.title["GUI"] #creating 3 different functions for 3 events def left_click[event]: tkinter.Label[window, text = "Left Click!"].pack[] def middle_click[event]: tkinter.Label[window, text = "Middle Click!"].pack[] def right_click[event]: tkinter.Label[window, text = "Right Click!"].pack[] window.bind["", left_click] window.bind["", middle_click] window.bind["", right_click] window.mainloop[]

Tiếp theo trên blog hướng dẫn Tkinter này, chúng ta cần xem cách chúng ta có thể thêm hình ảnh vào cửa sổ của mình.

Hình ảnh và biểu tượng

Bạn có thể thêm Hình ảnhBiểu tượng bằng phương pháp PhotoImage .

Hãy xem nó hoạt động như thế nào:

import tkinter window = tkinter.Tk[] window.title["GUI"] # taking image from the directory and storing the source in a variable icon = tkinter.PhotoImage[file = "images/edureka.png"] # displaying the picture using a 'Label' by passing the 'picture' variriable to 'image' parameter label = tkinter.Label[window, image = icon] label.pack[] window.mainloop[]

Bây giờ, bạn có thể: -

  • Hiểu mã Tkinter .
  • Tạo khung, nhãn, nút, chức năng ràng buộc, sự kiện và tất cả.
  • Để phát triển các ứng dụng GUI đơn giản .

Sử dụng - Trường hợp: Ứng dụng Máy tính Sử dụng Tkinter

Mọi ứng dụng GUI bao gồm hai bước:

  • Tạo giao diện người dùng
  • Thêm các chức năng vào GUI
from tkinter import * # creating basic window window = Tk[] window.geometry["312x324"] # size of the window width:- 500, height:- 375 window.resizable[0, 0] # this prevents from resizing the window window.title["Calcualtor"] ################################### functions ###################################### # 'btn_click' function continuously updates the input field whenever you enters a number def btn_click[item]: global expression expression = expression + str[item] input_text.set[expression] # 'btn_clear' function clears the input field def btn_clear[]: global expression expression = "" input_text.set[""] # 'btn_equal' calculates the expression present in input field def btn_equal[]: global expression result = str[eval[expression]] # 'eval' function evalutes the string expression directly # you can also implement your own function to evalute the expression istead of 'eval' function input_text.set[result] expression = "" expression = "" # 'StringVar[]' is used to get the instance of input field input_text = StringVar[] # creating a frame for the input field input_frame = Frame[window, width = 312, height = 50, bd = 0, highlightbackground = "black", highlightcolor = "black", highlightthickness = 1] input_frame.pack[side = TOP] # creating a input field inside the 'Frame' input_field = Entry[input_frame, font = ['arial', 18, 'bold'], textvariable = input_text, width = 50, bg = "#eee", bd = 0, justify = RIGHT] input_field.grid[row = 0, column = 0] input_field.pack[ipady = 10] # 'ipady' is internal padding to increase the height of input field # creating another 'Frame' for the button below the 'input_frame' btns_frame = Frame[window, width = 312, height = 272.5, bg = "grey"] btns_frame.pack[] # first row clear = Button[btns_frame, text = "C", fg = "black", width = 32, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_clear[]].grid[row = 0, column = 0, columnspan = 3, padx = 1, pady = 1] divide = Button[btns_frame, text = "/", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click["/"]].grid[row = 0, column = 3, padx = 1, pady = 1] # second row seven = Button[btns_frame, text = "7", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[7]].grid[row = 1, column = 0, padx = 1, pady = 1] eight = Button[btns_frame, text = "8", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[8]].grid[row = 1, column = 1, padx = 1, pady = 1] nine = Button[btns_frame, text = "9", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[9]].grid[row = 1, column = 2, padx = 1, pady = 1] multiply = Button[btns_frame, text = "*", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click["*"]].grid[row = 1, column = 3, padx = 1, pady = 1] # third row four = Button[btns_frame, text = "4", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[4]].grid[row = 2, column = 0, padx = 1, pady = 1] five = Button[btns_frame, text = "5", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[5]].grid[row = 2, column = 1, padx = 1, pady = 1] six = Button[btns_frame, text = "6", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[6]].grid[row = 2, column = 2, padx = 1, pady = 1] minus = Button[btns_frame, text = "-", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click["-"]].grid[row = 2, column = 3, padx = 1, pady = 1] # fourth row one = Button[btns_frame, text = "1", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[1]].grid[row = 3, column = 0, padx = 1, pady = 1] two = Button[btns_frame, text = "2", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[2]].grid[row = 3, column = 1, padx = 1, pady = 1] three = Button[btns_frame, text = "3", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[3]].grid[row = 3, column = 2, padx = 1, pady = 1] plus = Button[btns_frame, text = "+", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click["+"]].grid[row = 3, column = 3, padx = 1, pady = 1] # fourth row zero = Button[btns_frame, text = "0", fg = "black", width = 21, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click[0]].grid[row = 4, column = 0, columnspan = 2, padx = 1, pady = 1] point = Button[btns_frame, text = ".", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click["."]].grid[row = 4, column = 2, padx = 1, pady = 1] equals = Button[btns_frame, text = "=", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_equal[]].grid[row = 4, column = 3, padx = 1, pady = 1] window.mainloop[]

Điều này sẽ rất hữu ích khi bạn đang cố gắng tạo một ứng dụng tùy chỉnh với GUI phù hợp với nhu cầu cá nhân của mình. Bây giờ, bạn cũng có thể sử dụng các tiện ích và hình ảnh này để phát triển ứng dụng một cách dễ dàng với sự trợ giúp của Python.

Tôi hy vọng bạn thích bài đăng này trên Tkinter Tutorial.

Nếu bạn muốn xem thêm các bài viết về các công nghệ thịnh hành nhất trên thị trường như Trí tuệ nhân tạo, DevOps, Đạo đức Hacking, thì bạn có thể tham khảo trang web chính thức của Edureka.

Hãy tìm các bài viết khác trong loạt bài này sẽ giải thích các khía cạnh khác nhau của Python và Khoa học dữ liệu.

1. Hướng dẫn Python

2.Ngôn ngữ lập trình Python

3. Các hàm Python

4.Xử lý tệp bằng Python

5.Hướng dẫn Python Numpy

6. Học máy Scikit Learn

7. Hướng dẫn Python Pandas

8. Hướng dẫn Matplotlib

9. Hướng dẫn yêu cầu

10. Hướng dẫn PyGame

11. Hướng dẫn OpenCV

12. Web Scraping với Python

13. Hướng dẫn PyCharm

14. Hướng dẫn học máy

15. Thuật toán hồi quy tuyến tính từ đầu trong Python

16. Python cho Khoa học Dữ liệu

17. Python Regex

18. Vòng lặp trong Python

19. Dự án Python

20. Dự án Máy học

21. Mảng trong Python

22. Bộ bằng Python

23. Đa luồng trong Python

24. Câu hỏi phỏng vấn Python

25. Java và Python

26. Làm thế nào để trở thành một nhà phát triển Python?

27. Các hàm Lambda trong Python

28. Netflix sử dụng Python như thế nào?

29. Lập trình Socket trong Python là gì

30. Kết nối cơ sở dữ liệu Python

31. Golang vs Python

32. Hướng dẫn Python Seaborn

33. Cơ hội nghề nghiệp Python

Được xuất bản lần đầu tại www.edureka.co vào ngày 25 tháng 12 năm 2018.

Video liên quan

Chủ Đề