Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

Blog hướng dẫn Tkinter này sẽ giúp bạn bắt đầu tìm hiểu về thư viện Tkinter trong Python và cung cấp cho bạn cái nhìn sâu sắc 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ì?

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. Họ thực hiện các nhiệm 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 soạn thảo văn bản tạo, đọc, cập nhật và xóa các loại tệp khác nhau
  • Các ứng dụng như Sudoku, Cờ vua 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 duyệt qua Internet

Chúng là một số loại ứng dụng GUI khác nhau mà chúng ta sử dụng hàng ngày trên máy tính xách tay hoặc máy tính để bàn. Chúng ta sẽ tìm hiểu cách tạo các loại ứng dụng đó

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

Chà, đó 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 là có gì đó không ổn với dòng lệnh nhưng tôi thích các ứng dụng tương tác và trực quan hơn với nhiều hình ảnh

Bạn thích cái nào hơn?

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 ta


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
  • Trăn QT
  • wxPython
  • tkinter

Trong số tất cả những thứ này, Tkinter là lựa chọn đầu tiên của RẤT NHIỀU người học và nhà phát triển chỉ vì tính đơn giản và dễ dàng của nó

Tôi chắc rằng bạn cũng sẽ có cùng quan điểm trong một thời gian

Ghi chú. Tại thời điểm này, tôi muốn đề cập rằng bạn sẽ cần 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 với Python trước đó. 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 kiểm tra nó sau khi đọc xong.

Tiếp theo trên blog hướng dẫn Tkinter này, chúng ta hãy xem Tkinter thực sự là gì


Tkinter là gì?

Tkinter thực ra là một mô-đun Python tích hợp 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ì mô-đun này đi kèm với mặc định Python

Tôi sẽ sử dụng Python 3. 6 phiên bản 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 bên dưới

Một lời khuyên nữa cho các bạn là đừng copy code một cách mù quáng. Cố gắng viết bằng cách sửa đổi nó theo ý muố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 để chúng ta 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 một ứng dụng thực sự hoạt động như thế nào trong Tkinter

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

Để bắt đầu, trước tiên chúng tôi nhập mô hình Tkinter. Tiếp theo đó, chúng tôi 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 vật dụng và cuối cùng chúng tôi vào 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 vào thời điểm này. Đây là 2 từ khóa

Một vòng lặp sự kiện về cơ bản yêu cầu mã tiếp tục hiển thị cửa sổ cho đến khi chúng tôi đóng cửa sổ theo cách thủ công. Nó chạy trong một vòng lặp vô hạn ở back-end

Kiểm tra mã sau đây để 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()

Như bạn có thể thấy, chúng tôi đang nhập gói Tkinter và xác định một cửa sổ. Tiếp theo đó, chúng tôi sẽ đưa ra một tiêu đề cửa sổ được hiển thị trên tab tiêu đề bất cứ khi nào bạn mở một ứng dụng

Ví dụ: Microsoft Word được hiển thị trên tab tiêu đề khi bạn mở một ứng dụng từ, đúng không? . Chúng tôi có thể gọi nó là bất cứ điều 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. Nhãn không là gì ngoài đầ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, nó là hello world

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

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

  • Canvas – Canvas được sử dụng để vẽ hình 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 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 – Entry widget được sử dụng để tạo các trường nhập liệu trong GUI
  • Khung – Khung được sử dụng làm vùng chứa trong Tkinter
  • Nhãn – Nhãn được sử dụng để tạo tiện ích một dòng như văn bản, hình ảnh, v.v.
  • Menu – Menu được sử dụng để tạo các menu trong GUI

Những tiện ích này là lý do khiến Tkinter trở nên phổ biến. Nó làm cho nó thực sự dễ hiểu và sử dụng thực tế

Hãy để chúng tôi đi qua tất cả các vật dụng 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 từng tiện ích con. Các đoạn mã là quá đủ để giúp bạn học dễ dàng hơn và tôi đã làm điều này chỉ để bạn có thể tránh bất kỳ sự 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.v. nhưng điều quan trọng cần lưu ý là nó chỉ được định nghĩa một dòng

Đây là đoạn mã

l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

l1.grid (column=0, row=0)



Chúng tôi đã nhập văn bản của mình với tên Edureka và văn bản đó được in như hiện tại. Đơn giản, phải không?

Kiểm tra đầu ra dưới đây

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

Có một thứ 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 tiếp theo

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 cửa sổ và đặt theo yêu cầu của chúng tôi

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

l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

window.geometry('350x200')

l1.grid (column=0, row=0)



Chà, trong trường hợp này, chúng tôi đã đặt nó có chiều rộng 350 pixel và chiều cao 200 pixel

Và đây là đầu ra cho cùng

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

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 con nào khác. Chúng tôi sẽ sử dụng tham số FG như 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)



đầu ra

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

Theo đầu ra chúng tôi nhận được, nền trước của chúng tôi là văn bản có màu đỏ như được xác định và nền có màu cam khi chúng tôi đặt nó 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 được. Chà, điều gì 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 trích này

def clicked():

     l1.configure (text="Button was clicked !!")

bt = Button (window, text=“Enter”, command=clicked)

Vì vậy, chúng tôi gọi đây là sự kiện nhấp chuột. Chúng tôi cần viết chức năng về điều gì sẽ xảy ra khi chúng tôi nhấp vào nút hoặc theo các thuật ngữ khác khi sự kiện nhấp chuột được kích hoạt

Với mục đích đó, chúng tôi có một chức năng gọi là đã nhấp, chúng tôi đang hiển thị một thông báo văn bản cho biết 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ư được hiển thị

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

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

Tiện ích mục nhập

Tiện ích mục nhập được sử dụng để làm gì?

Nó được dùng để tạo các trường nhập trong GUI để nhập văn bản

Kiểm tra mã ví dụ 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)

Ở đây, chúng tôi đang tạo một hộp văn bản bằng cách sử dụng lớp nhập Tkinter. Lưới cho mã biết nơi chúng tôi muốn tiện ích con trên cửa sổ

Đ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 kỳ nội dung nào được nhập vào vùng văn bản sẽ được nối cùng với thông báo này và được in

Kiểm tra đầu ra. Chúng tôi đã nhập Python Training và do đó, nó hiển thị chào mừng bạn đến với đào tạo python

đầu ra

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

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 Checkbutton

Tiện ích nút kiểm

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

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

đoạn mã

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

Chúng tôi bắt đầu bằng cách tạo một biến kiểu booleanvar

Nhưng đây không phải là một biến python tiêu chuẩn, đúng không?

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

đầu ra

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

Kiểm tra đầu ra ở trên. Vì vậy, chúng tôi có một tiện ích nút kiểm 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 tôi 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 khá phổ biến 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 nhìn vào 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)

Ở đây, chúng ta có các tham số giá trị khác nhau. 1,2 và 3. Tuy nhiên nếu giống nhau sẽ dẫn đến xung đột và xảy ra lỗi. Vì vậy, cần lưu ý rằng một giá trị duy nhất được sử dụng để giải quyết các nút radio

Tuy nhiên, giá trị phải là duy nhất nhưng dữ liệu 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 dựa trên các yêu cầu

Tương tự, hàm grid dùng để đặt widget trên cửa sổ

đầu ra

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

Từ đầu ra ở trên, xin 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 lần

Tiện ích tiếp theo chúng tôi 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 cuộn

Một tiện ích đẹp 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ã số

l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

l1.grid (column=0, row=0)



0

Một điều bạn phải lưu ý ở đây, điều rất quan trọng là bạn cần chỉ định chiều rộng và chiều cao của tiện ích văn bản được cuộn. Chà, nếu chúng ta không chỉ định giống nhau, toàn bộ cửa sổ sẽ được lấp đầy

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. chèn với thông báo làm tham số

đầu ra

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

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 hộp thông báo

Tiện ích hộp tin nhắn

Hãy để chúng tôi nhanh chóng xem 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ã số

l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

l1.grid (column=0, row=0)



1

Nhập thư viện và hiển thị thông báo. Nhưng chúng ta cần xác định tiêu đề tin nhắn và nội dung tin nhắn ở đây

Thấy chưa, đây là nơi mọi thứ trở nên thú vị. Nhìn vào đoạn trích dưới đây

l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

l1.grid (column=0, row=0)



2

Ở đây chúng tôi đã sử dụng hai vật dụng mà chúng tôi đã học. Chúng tôi đang sử dụng nút bấm để hiển thị hộp thông báo cho chúng tôi

Đây là đầu ra

Viết chương trình gui python để tạo tiện ích văn bản cuộn bằng mô-đun tkinter

Tiếp theo trên blog hướng dẫn Tkinter này, chúng ta cần xem một khái niệm gọi là hàm liên kết


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

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

  • Trong ví dụ bên dưới, khi bạn nhấp vào nút, nút này sẽ gọi một hàm có tên là say_hi
  • Hàm say_hi tạo nhãn mới có nội dung Xin chào
l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

l1.grid (column=0, row=0)



6

Chương trình trên sẽ cho ra kết quả như sau

Tkinter Tutorial - Edureka

Một cách khác để liên kết các hàm là sử dụng sự kiện. Các sự kiện giống như di chuột, di chuột qua, nhấp và cuộn

Chương trình sau cũng cho kết quả tương tự như chương trình trên

l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

l1.grid (column=0, row=0)



7
  • ‘‘ tham số của phương thức liên kết là sự kiện nhấp chuột trái, tôi. e. , khi bạn nhấp vào nút bên trái, phương thức liên kết gọi hàm say_hi
    • cho nhấp chuột trái
    • cho nhấp chuột giữa 
    • cho nhấp chuột phải
  • Ở đây, chúng ta đang liên kết sự kiện nhấp chuột trái với 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
  • Bạn sẽ có các thông số khác nhau cho các sự kiện khác nhau

Các sự kiện nhấp chuột có 3 loại khác nhau là Nhấp chuột trái, Nhấp chuột giữa và Nhấp chuột phải

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
l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

l1.grid (column=0, row=0)



8

Nếu chạy chương trình trên, bạn sẽ thấy một cửa sổ trống. Bây giờ, hãy nhấp vào nút trái, giữa và phải để gọi các chức năng tương ứng

Bạn nhận được kết quả tương tự như sau

Tkinter Tutorial - Edureka

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 ảnh và Biểu tượng bằng phương pháp PhotoImage 

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

l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

l1.grid (column=0, row=0)



9

Bạn có thể thấy biểu tượng trong GUI

Tkinter Tutorial - Edureka

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

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

Vì vậy, tiếp theo trên blog Hướng dẫn Tkinter này, chúng ta sẽ tạo một GUI Máy tính đơn giản với tất cả những thứ mà chúng ta đã học được cho đến bây giờ


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

  • Thêm các chức năng vào GUI
l1 = Label (window, text="edureka!“ font=("Arial Bold", 50))

window.geometry('350x200')

l1.grid (column=0, row=0)



0

Sự kết luận

Các khái niệm được thảo luận trong hướng dẫn này sẽ giúp bạn tạo các ứng dụng GUI của riêng mình và thêm chức năng vào cùng một ứng dụng.

Đ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. Giờ đây, 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

Sau khi đọc blog này về hướng dẫn Tkinter bằng Python, tôi khá chắc chắn rằng bạn muốn biết thêm về Python. Để biết thêm về Python, bạn có thể tham khảo các blog sau

Tôi hy vọng bạn thích bài đăng này trên Hướng dẫn Tkinter. Nếu bạn có bất kỳ câu hỏi nào liên quan đến hướng dẫn này, vui lòng cho tôi biết trong phần nhận xét

Hướng dẫn Python cho người mới bắt đầu. Khóa học về sự cố Python. Edureka

Hướng dẫn Edureka này về “Hướng dẫn Python cho người mới bắt đầu” bao gồm tất cả những điều cơ bản về Python. Nó bao gồm các ví dụ lập trình python, vì vậy hãy tự mình thử và đề cập trong phần nhận xét nếu bạn có bất kỳ nghi ngờ nào

Tiện ích văn bản cuộn Tkinter là gì?

Tkinter. mô-đun văn bản cuộn cung cấp một lớp cùng tên triển khai tiện ích con văn bản cơ bản có thanh cuộn dọc được định cấu hình để thực hiện “điều đúng đắn. ” Sử dụng lớp ScrolledText dễ dàng hơn nhiều so với việc thiết lập tiện ích con văn bản và thanh cuộn trực tiếp.

Widget trong Tkinter GUI trong Python là gì?

Có nhiều điều khiển khác nhau, chẳng hạn như nút, nhãn, thanh cuộn, nút radio và hộp văn bản được sử dụng trong ứng dụng GUI. Các thành phần hoặc điều khiển nhỏ này của Giao diện người dùng đồ họa (GUI) được gọi là các widget trong Tkinter

Có GUI cho Tkinter không?

Yếu tố nền tảng của GUI Tkinter là cửa sổ . Windows là nơi chứa tất cả các thành phần GUI khác sống. Các phần tử GUI khác này, chẳng hạn như hộp văn bản, nhãn và nút, được gọi là tiện ích con. Widget được chứa bên trong cửa sổ.

Mô-đun Tkinter trong Python là gì?

Tkinter là cách thực tế trong Python để tạo Giao diện người dùng đồ họa (GUI) và được bao gồm trong tất cả các Bản phân phối Python tiêu chuẩn. Trên thực tế, đó là khung duy nhất được tích hợp trong thư viện chuẩn Python