Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Python có rất nhiều khung GUI, nhưng Tkinter là khuôn khổ duy nhất mà LỚN tích hợp vào thư viện tiêu chuẩn Python. Tkinter có một số điểm mạnh. Nó đa nền tảng, vì vậy cùng một mã hoạt động trên Windows, MacOS và Linux. Các yếu tố trực quan được hiển thị bằng các yếu tố hệ điều hành gốc, vì vậy các ứng dụng được xây dựng với Tkinter trông giống như chúng thuộc về nền tảng nơi chúng chạy.cross-platform, so the same code works on Windows, macOS, and Linux. Visual elements are rendered using native operating system elements, so applications built with Tkinter look like they belong on the platform where they’re run.

Show

Mặc dù Tkinter được coi là khung GUI Python thực tế, nhưng nó không phải là không có lời chỉ trích. Một lời chỉ trích đáng chú ý là GUI được xây dựng với Tkinter trông đã lỗi thời. Nếu bạn muốn một giao diện hiện đại, sáng bóng, thì Tkinter có thể không phải là thứ mà bạn đang tìm kiếm.

Tuy nhiên, Tkinter nhẹ và tương đối không đau để sử dụng so với các khung khác. Điều này làm cho nó trở thành một lựa chọn hấp dẫn để xây dựng các ứng dụng GUI trong Python, đặc biệt là các ứng dụng mà một ánh sáng hiện đại là không cần thiết, và ưu tiên hàng đầu là nhanh chóng xây dựng một thứ gì đó mà chức năng và đa nền tảng.

Trong hướng dẫn này, bạn sẽ học cách:

  • Bắt đầu với Tkinter với một ứng dụng xin chào, thế giớiHello, World application
  • Làm việc với các widget, chẳng hạn như nút và hộp văn bảnwidgets, such as buttons and text boxes
  • Kiểm soát bố cục ứng dụng của bạn với Trình quản lý hình họcgeometry managers
  • Làm cho các ứng dụng của bạn tương tác bằng cách liên kết các nhấp chuột với các chức năng Pythoninteractive by associating button clicks with Python functions

Khi bạn đã thành thạo các kỹ năng này bằng cách thực hiện các bài tập ở cuối mỗi phần, bạn sẽ gắn kết mọi thứ lại với nhau bằng cách xây dựng hai ứng dụng. Đầu tiên là bộ chuyển đổi nhiệt độ và thứ hai là trình soạn thảo văn bản. Đó là thời gian để lặn ngay và học cách xây dựng một ứng dụng với Tkinter!temperature converter, and the second is a text editor. It’s time to dive right in and learn how to build an application with Tkinter!

Xây dựng ứng dụng GUI Python đầu tiên của bạn với Tkinter

Yếu tố nền tảng của GUI Tkinter là cửa sổ. Windows là các thùng chứa trong đó tất cả các yếu tố GUI khác sống. Các yếu tố GUI khác, chẳng hạn như hộp văn bản, nhãn và nút, được gọi là widget. Các tiện ích được chứa bên trong của Windows.window. Windows are the containers in which all other GUI elements live. These other GUI elements, such as text boxes, labels, and buttons, are known as widgets. Widgets are contained inside of windows.

Đầu tiên, tạo một cửa sổ chứa một tiện ích duy nhất. Bắt đầu một phiên vỏ Python mới và theo dõi!

Với vỏ Python của bạn mở, điều đầu tiên bạn cần làm là nhập mô -đun Python Gui Tkinter:

>>>

>>> import tkinter as tk

Một cửa sổ là một ví dụ của lớp Tkinter từ ____995. Đi trước và tạo một cửa sổ mới và gán nó cho biến

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6:window is an instance of Tkinter’s
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
5 class. Go ahead and create a new window and assign it to the variable
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6:

Khi bạn thực thi mã trên, một cửa sổ mới bật lên trên màn hình của bạn. Làm thế nào nó trông phụ thuộc vào hệ điều hành của bạn:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Trong suốt phần còn lại của hướng dẫn này, bạn sẽ thấy ảnh chụp màn hình Windows.

Thêm một tiện ích

Bây giờ bạn có một cửa sổ, bạn có thể thêm một tiện ích. Sử dụng lớp

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
7 để thêm một số văn bản vào cửa sổ. Tạo tiện ích
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 với văn bản
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
9 và gán nó cho một biến gọi là
>>> greeting = tk.Label(text="Hello, Tkinter")
00:

>>>

>>> greeting = tk.Label(text="Hello, Tkinter")

Một cửa sổ là một ví dụ của lớp Tkinter từ ____995. Đi trước và tạo một cửa sổ mới và gán nó cho biến

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6:

Khi bạn thực thi mã trên, một cửa sổ mới bật lên trên màn hình của bạn. Làm thế nào nó trông phụ thuộc vào hệ điều hành của bạn:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Trong suốt phần còn lại của hướng dẫn này, bạn sẽ thấy ảnh chụp màn hình Windows.

Thêm một tiện ích

Bây giờ bạn có một cửa sổ, bạn có thể thêm một tiện ích. Sử dụng lớp

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
7 để thêm một số văn bản vào cửa sổ. Tạo tiện ích
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 với văn bản
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
9 và gán nó cho một biến gọi là
>>> greeting = tk.Label(text="Hello, Tkinter")
00:event loop. This method listens for events, such as button clicks or keypresses, and blocks any code that comes after it from running until you close the window where you called the method. Go ahead and close the window you’ve created, and you’ll see a new prompt displayed in the shell.

Cửa sổ bạn đã tạo trước đó không thay đổi. Bạn vừa tạo một tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8, nhưng bạn đã thêm nó vào cửa sổ. Có một số cách để thêm các widget vào một cửa sổ. Ngay bây giờ, bạn có thể sử dụng phương pháp
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 Widget ____ ____103:

Cửa sổ bây giờ trông như thế này:

Khi bạn đóng gói một tiện ích vào cửa sổ, Tkinter kích thước cửa sổ nhỏ nhất có thể trong khi vẫn bao gồm hoàn toàn tiện ích. Bây giờ thực hiện các mục sau:

Dường như không có gì xảy ra, nhưng lưu ý rằng không có lời nhắc mới nào xuất hiện trong vỏ.

>>> greeting = tk.Label(text="Hello, Tkinter")
04 bảo Python chạy vòng lặp sự kiện Tkinter. Phương thức này lắng nghe các sự kiện, chẳng hạn như nhấp chuột hoặc phím Keypresses và chặn bất kỳ mã nào xuất hiện sau khi nó chạy cho đến khi bạn đóng cửa sổ nơi bạn gọi phương thức. Đi trước và đóng cửa sổ mà bạn đã tạo, và bạn sẽ thấy một lời nhắc mới được hiển thị trong vỏ.

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Tạo một cửa sổ với Tkinter chỉ mất một vài dòng mã. Nhưng các cửa sổ trống aren rất hữu ích! Trong phần tiếp theo, bạn sẽ tìm hiểu về một số tiện ích có sẵn trong Tkinter và cách bạn có thể tùy chỉnh chúng để đáp ứng nhu cầu ứng dụng của bạn.

Kiểm tra việc hiểu của bạn

Mở rộng các khối mã bên dưới để kiểm tra sự hiểu biết của bạn:

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()

Viết một tập lệnh Python đầy đủ tạo ra một cửa sổ Tkinter với văn bản

>>> greeting = tk.Label(text="Hello, Tkinter")
05.

Cửa sổ trông như thế này:

Hãy thử bài tập này ngay bây giờ.

Bạn có thể mở rộng khối mã bên dưới để xem giải pháp:widget in Tkinter is defined by a class. Here are some of the widgets available:

Ở đây, một giải pháp khả thi:Hãy nhớ rằng mã của bạn có thể trông khác nhau.
Khi bạn đã sẵn sàng, bạn có thể chuyển sang phần tiếp theo.Làm việc với các vật dụng
Các vật dụng là bánh mì và bơ của Tkinter Gui Gui. Họ là các yếu tố mà qua đó người dùng tương tác với chương trình của bạn. Mỗi tiện ích trong Tkinter được xác định bởi một lớp. Dưới đây là một số vật dụng có sẵn:Lớp tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08
Tiện ích nhập văn bản chỉ cho phép một dòng văn bản duy nhất
>>> greeting = tk.Label(text="Hello, Tkinter")
09
Tiện ích nhập văn bản cho phép nhập văn bản đa dòng
>>> greeting = tk.Label(text="Hello, Tkinter")
10
Một vùng hình chữ nhật được sử dụng để nhóm các vật dụng liên quan hoặc cung cấp đệm giữa các vật dụng

Bạn có thể thấy cách làm việc với từng trong số này trong các phần sau, nhưng hãy nhớ rằng Tkinter có nhiều vật dụng hơn so với những người được liệt kê ở đây. Sự lựa chọn của Widget thậm chí còn phức tạp hơn khi bạn giải thích cho một bộ tiện ích theo chủ đề hoàn toàn mới. Mặc dù vậy, trong phần còn lại của hướng dẫn này, bạn sẽ chỉ sử dụng các vật dụng cổ điển của Tkinter.themed widgets. In the remaining part of this tutorial, you’re only going to use Tkinter’s classic widgets, though.

Nếu bạn muốn tìm hiểu thêm về hai loại widget, thì bạn có thể mở rộng phần thu gọn bên dưới:

Điều đáng chú ý là hiện tại có hai loại vật dụng rộng trong Tkinter:

  1. Các vật dụng cổ điển: Có sẵn trong gói
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    11, ví dụ
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    12
    Available in the
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    11 package, for example
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    12
  2. Các tiện ích theo chủ đề: Có sẵn trong mô hình con
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    13, ví dụ
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    14
    Available in the
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    13 submodule, for example
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    14

Các vật dụng cổ điển của Tkinter sườn có khả năng tùy biến cao và đơn giản, nhưng chúng có xu hướng xuất hiện ngày hoặc hơi nước ngoài trên hầu hết các nền tảng hiện nay. Nếu bạn muốn tận dụng các vật dụng với giao diện bản địa và cảm thấy quen thuộc với người dùng của một hệ điều hành nhất định, thì bạn có thể muốn kiểm tra các tiện ích theo chủ đề.

Hầu hết các tiện ích theo chủ đề đều gần thay thế cho các đối tác di sản của họ, nhưng với một cái nhìn hiện đại hơn. Bạn cũng có thể sử dụng một vài tiện ích hoàn toàn mới, chẳng hạn như thanh tiến trình, mà người sói có sẵn trong Tkinter trước đây. Đồng thời, bạn sẽ cần phải tiếp tục sử dụng một số vật dụng cổ điển mà don lồng có một sự thay thế theo chủ đề.

Khi làm việc với các widget thường xuyên và theo chủ đề trong Tkinter, thông thường để khai báo các bí danh sau đây cho các gói và mô -đun Tkinter:

>>>

>>> import tkinter as tk
>>> import tkinter.ttk as ttk

Các bí danh như thế này cho phép bạn đề cập rõ ràng đến

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
7 hoặc
>>> greeting = tk.Label(text="Hello, Tkinter")
16, ví dụ, trong một chương trình tùy thuộc vào nhu cầu của bạn:

>>>

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>

Các bí danh như thế này cho phép bạn đề cập rõ ràng đến

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
7 hoặc
>>> greeting = tk.Label(text="Hello, Tkinter")
16, ví dụ, trong một chương trình tùy thuộc vào nhu cầu của bạn:

>>>

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>

Các bí danh như thế này cho phép bạn đề cập rõ ràng đến

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
7 hoặc
>>> greeting = tk.Label(text="Hello, Tkinter")
16, ví dụ, trong một chương trình tùy thuộc vào nhu cầu của bạn:

Tuy nhiên, đôi khi bạn có thể thấy thuận tiện hơn khi sử dụng nhập ký tự đại diện (

>>> greeting = tk.Label(text="Hello, Tkinter")
17) để tự động ghi đè tất cả các tiện ích kế thừa với các tiện ích theo chủ đề có thể, như vậy:

Bây giờ, bạn không phải là tiền tố tên lớp Widget với mô -đun Python tương ứng của nó. Bạn sẽ luôn tạo một tiện ích theo chủ đề miễn là nó có sẵn, hoặc bạn sẽ quay trở lại tiện ích cổ điển. Hai báo cáo nhập ở trên phải được đặt theo thứ tự được chỉ định để có hiệu lực. Do đó, nhập khẩu ký tự đại diện được coi là một thực hành xấu, thường nên tránh trừ khi được sử dụng một cách có ý thức.

Để biết danh sách đầy đủ các tiện ích Tkinter, hãy xem các tiện ích cơ bản và nhiều tiện ích hơn trong hướng dẫn TKDOCS. Mặc dù nó mô tả các tiện ích theo chủ đề được giới thiệu trong TCL/TK 8.5, hầu hết các thông tin cũng nên áp dụng cho các tiện ích cổ điển.

Hiện tại, hãy xem xét kỹ hơn về tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8. widgets are used to display text or images. The text displayed by a
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 widget can’t be edited by the user. It’s for display purposes only. As you saw in the example at the beginning of this tutorial, you can create a
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 widget by instantiating the
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 class and passing a string to the
>>> greeting = tk.Label(text="Hello, Tkinter")
24 parameter:

label = tk.Label(text="Hello, Tkinter")

Hiển thị văn bản và hình ảnh với các tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 Các tiện ích được sử dụng để hiển thị văn bản hoặc hình ảnh. Văn bản được hiển thị bởi một tiện ích
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 có thể được người dùng chỉnh sửa. Nó chỉ dành cho mục đích hiển thị. Như bạn đã thấy trong ví dụ ở đầu hướng dẫn này, bạn có thể tạo tiện ích
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 bằng cách khởi tạo lớp
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và chuyển một chuỗi đến tham số
>>> greeting = tk.Label(text="Hello, Tkinter")
24:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 Các tiện ích hiển thị văn bản với màu văn bản hệ thống mặc định và màu nền văn bản hệ thống mặc định. Đây thường là màu đen và trắng, nhưng bạn có thể thấy các màu khác nhau nếu bạn đã thay đổi các cài đặt này trong hệ điều hành của mình.

  • >>> greeting = tk.Label(text="Hello, Tkinter")
    
    29
  • >>> greeting = tk.Label(text="Hello, Tkinter")
    
    30
  • >>> greeting = tk.Label(text="Hello, Tkinter")
    
    31
  • >>> greeting = tk.Label(text="Hello, Tkinter")
    
    32
  • >>> greeting = tk.Label(text="Hello, Tkinter")
    
    33
  • >>> greeting = tk.Label(text="Hello, Tkinter")
    
    34

Bạn có thể kiểm soát các màu văn bản và nền văn bản bằng các tham số

>>> greeting = tk.Label(text="Hello, Tkinter")
27 và
>>> greeting = tk.Label(text="Hello, Tkinter")
28:

Có rất nhiều tên màu hợp lệ, bao gồm:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")

Nhiều tên màu HTML hoạt động với Tkinter. Để tham khảo đầy đủ, bao gồm các màu hệ thống dành riêng cho macOS và Windows mà các điều khiển chủ đề hệ thống hiện tại, hãy xem trang Hướng dẫn màu sắc.

Bạn cũng có thể chỉ định màu bằng cách sử dụng các giá trị RGB thập lục phân:

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")

Điều này đặt nền nhãn thành một màu xanh nhạt, đẹp. Các giá trị RGB thập lục phân có nhiều mật mã hơn so với các màu được đặt tên, nhưng chúng cũng linh hoạt hơn. May mắn thay, có những công cụ có sẵn làm cho việc nhận mã màu thập lục phân tương đối không đau.

>>> greeting = tk.Label(text="Hello, Tkinter")
0

Nếu bạn không cảm thấy muốn gõ

>>> greeting = tk.Label(text="Hello, Tkinter")
27 và
>>> greeting = tk.Label(text="Hello, Tkinter")
28 mọi lúc, thì bạn có thể sử dụng các tham số tốc ký
>>> greeting = tk.Label(text="Hello, Tkinter")
37 và
>>> greeting = tk.Label(text="Hello, Tkinter")
38 để đặt màu tiền cảnh và màu nền:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Có vẻ lạ là nhãn trong cửa sổ không phải là hình vuông mặc dù chiều rộng và chiều cao đều được đặt thành

>>> greeting = tk.Label(text="Hello, Tkinter")
41. Điều này là do chiều rộng và chiều cao được đo bằng các đơn vị văn bản. Một đơn vị văn bản ngang được xác định bởi chiều rộng của ký tự
>>> greeting = tk.Label(text="Hello, Tkinter")
42 hoặc số 0, trong phông chữ hệ thống mặc định. Tương tự, một đơn vị văn bản dọc được xác định bởi chiều cao của ký tự
>>> greeting = tk.Label(text="Hello, Tkinter")
42.text units. One horizontal text unit is determined by the width of the character
>>> greeting = tk.Label(text="Hello, Tkinter")
42, or the number zero, in the default system font. Similarly, one vertical text unit is determined by the height of the character
>>> greeting = tk.Label(text="Hello, Tkinter")
42.

Nhãn rất tuyệt vời để hiển thị một số văn bản, nhưng chúng không giúp bạn nhận được đầu vào từ người dùng. Ba tiện ích tiếp theo mà bạn sẽ tìm hiểu đều được sử dụng để nhận đầu vào của người dùng.

Hiển thị các nút có thể nhấp với các tiện ích >>> greeting = tk.Label(text="Hello, Tkinter") 07

>>> greeting = tk.Label(text="Hello, Tkinter")
07 Các tiện ích được sử dụng để hiển thị các nút có thể nhấp. Bạn có thể định cấu hình chúng để gọi một chức năng bất cứ khi nào họ nhấp vào. Bạn sẽ bao gồm cách gọi các chức năng từ các nhấp chuột trong phần tiếp theo. Bây giờ, hãy xem cách tạo và tạo kiểu cho một nút. widgets are used to display clickable buttons. You can configure them to call a function whenever they’re clicked. You’ll cover how to call functions from button clicks in the next section. For now, take a look at how to create and style a button.

Có nhiều điểm tương đồng giữa các vật dụng

>>> greeting = tk.Label(text="Hello, Tkinter")
07 và
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8. Theo nhiều cách, một nút chỉ là một nhãn mà bạn có thể nhấp vào! Các đối số từ khóa tương tự mà bạn sử dụng để tạo và tạo kiểu
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 sẽ hoạt động với các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
07. Ví dụ: mã sau tạo một nút có nền màu xanh và văn bản màu vàng. Nó cũng đặt chiều rộng và chiều cao thành các đơn vị văn bản
>>> greeting = tk.Label(text="Hello, Tkinter")
50 và
>>> greeting = tk.Label(text="Hello, Tkinter")
51, tương ứng:

>>> greeting = tk.Label(text="Hello, Tkinter")
1

Đây là những gì nút trông như thế nào trong một cửa sổ:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Khá tiện lợi! Bạn có thể sử dụng hai tiện ích tiếp theo để thu thập đầu vào văn bản từ người dùng.

Nhận đầu vào của người dùng với các tiện ích >>> greeting = tk.Label(text="Hello, Tkinter") 08

Khi bạn cần lấy một chút văn bản từ người dùng, như tên hoặc địa chỉ email, hãy sử dụng tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08. Nó sẽ hiển thị một hộp văn bản nhỏ mà người dùng có thể nhập một số văn bản vào. Tạo và tạo kiểu cho một tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08 hoạt động khá chính xác như với các tiện ích
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và
>>> greeting = tk.Label(text="Hello, Tkinter")
07. Ví dụ: mã sau tạo một tiện ích có nền màu xanh, một số văn bản màu vàng và chiều rộng của
>>> greeting = tk.Label(text="Hello, Tkinter")
57 Đơn vị văn bản:
>>> greeting = tk.Label(text="Hello, Tkinter")
08
widget. It’ll display a small text box that the user can type some text into. Creating and styling an
>>> greeting = tk.Label(text="Hello, Tkinter")
08 widget works pretty much exactly like with
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 and
>>> greeting = tk.Label(text="Hello, Tkinter")
07 widgets. For example, the following code creates a widget with a blue background, some yellow text, and a width of
>>> greeting = tk.Label(text="Hello, Tkinter")
57 text units:

>>> greeting = tk.Label(text="Hello, Tkinter")
2

Mặc dù vậy, một chút thú vị về các vật dụng

>>> greeting = tk.Label(text="Hello, Tkinter")
08 không phải là cách tạo kiểu cho chúng. Đó là cách sử dụng chúng để nhận đầu vào từ người dùng. Có ba hoạt động chính mà bạn có thể thực hiện với các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08:input from a user. There are three main operations that you can perform with
>>> greeting = tk.Label(text="Hello, Tkinter")
08 widgets:

  1. Lấy văn bản với
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    60
    with
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    60
  2. Xóa văn bản bằng
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    61
    with
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    61
  3. Chèn văn bản với
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    62
    with
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    62

Cách tốt nhất để có được sự hiểu biết về các tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08 là tạo một và tương tác với nó. Mở vỏ Python và làm theo cùng với các ví dụ trong phần này. Đầu tiên, nhập
>>> greeting = tk.Label(text="Hello, Tkinter")
11 và tạo một cửa sổ mới:

>>>

>>> greeting = tk.Label(text="Hello, Tkinter")
3

Bây giờ tạo tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và
>>> greeting = tk.Label(text="Hello, Tkinter")
08:

>>>

>>> greeting = tk.Label(text="Hello, Tkinter")
4

Bây giờ tạo tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và
>>> greeting = tk.Label(text="Hello, Tkinter")
08:

>>>

>>> greeting = tk.Label(text="Hello, Tkinter")
5

Bây giờ tạo tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và
>>> greeting = tk.Label(text="Hello, Tkinter")
08:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 mô tả loại văn bản nào nên đi trong tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08. Nó không thực thi bất kỳ loại yêu cầu nào trên
>>> greeting = tk.Label(text="Hello, Tkinter")
08, nhưng nó cho người dùng biết chương trình của bạn mong đợi họ sẽ đặt ở đó. Bạn cần phải
>>> greeting = tk.Label(text="Hello, Tkinter")
03 Các widget vào cửa sổ để chúng có thể nhìn thấy:

Ở đây, những gì trông giống như:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Lưu ý rằng Tkinter tự động tập trung nhãn trên tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08 trong cửa sổ. Đây là một tính năng của
>>> greeting = tk.Label(text="Hello, Tkinter")
03, mà bạn sẽ tìm hiểu thêm về các phần sau.

>>>

Bây giờ tạo tiện ích
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và
>>> greeting = tk.Label(text="Hello, Tkinter")
08:

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 mô tả loại văn bản nào nên đi trong tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08. Nó không thực thi bất kỳ loại yêu cầu nào trên
>>> greeting = tk.Label(text="Hello, Tkinter")
08, nhưng nó cho người dùng biết chương trình của bạn mong đợi họ sẽ đặt ở đó. Bạn cần phải
>>> greeting = tk.Label(text="Hello, Tkinter")
03 Các widget vào cửa sổ để chúng có thể nhìn thấy:

Ở đây, những gì trông giống như:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Lưu ý rằng Tkinter tự động tập trung nhãn trên tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08 trong cửa sổ. Đây là một tính năng của
>>> greeting = tk.Label(text="Hello, Tkinter")
03, mà bạn sẽ tìm hiểu thêm về các phần sau.

Nhấp vào bên trong tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08 với chuột của bạn và nhập
>>> greeting = tk.Label(text="Hello, Tkinter")
74:

>>>

>>> greeting = tk.Label(text="Hello, Tkinter")
7

Bây giờ tạo tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và
>>> greeting = tk.Label(text="Hello, Tkinter")
08:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 mô tả loại văn bản nào nên đi trong tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08. Nó không thực thi bất kỳ loại yêu cầu nào trên
>>> greeting = tk.Label(text="Hello, Tkinter")
08, nhưng nó cho người dùng biết chương trình của bạn mong đợi họ sẽ đặt ở đó. Bạn cần phải
>>> greeting = tk.Label(text="Hello, Tkinter")
03 Các widget vào cửa sổ để chúng có thể nhìn thấy:

>>>

>>> greeting = tk.Label(text="Hello, Tkinter")
8

Bây giờ tạo tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và
>>> greeting = tk.Label(text="Hello, Tkinter")
08:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 mô tả loại văn bản nào nên đi trong tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08. Nó không thực thi bất kỳ loại yêu cầu nào trên
>>> greeting = tk.Label(text="Hello, Tkinter")
08, nhưng nó cho người dùng biết chương trình của bạn mong đợi họ sẽ đặt ở đó. Bạn cần phải
>>> greeting = tk.Label(text="Hello, Tkinter")
03 Các widget vào cửa sổ để chúng có thể nhìn thấy:

>>>

>>> greeting = tk.Label(text="Hello, Tkinter")
9

Bây giờ tạo tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và
>>> greeting = tk.Label(text="Hello, Tkinter")
08:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 mô tả loại văn bản nào nên đi trong tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08. Nó không thực thi bất kỳ loại yêu cầu nào trên
>>> greeting = tk.Label(text="Hello, Tkinter")
08, nhưng nó cho người dùng biết chương trình của bạn mong đợi họ sẽ đặt ở đó. Bạn cần phải
>>> greeting = tk.Label(text="Hello, Tkinter")
03 Các widget vào cửa sổ để chúng có thể nhìn thấy:

Nếu

>>> greeting = tk.Label(text="Hello, Tkinter")
08 đã chứa một số văn bản, thì
>>> greeting = tk.Label(text="Hello, Tkinter")
62 sẽ chèn văn bản mới tại vị trí được chỉ định và chuyển tất cả văn bản hiện có sang bên phải:

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
0

Văn bản Widget bây giờ đọc

>>> greeting = tk.Label(text="Hello, Tkinter")
74:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

>>> greeting = tk.Label(text="Hello, Tkinter")
08 Các widget rất tuyệt vời để thu thập một lượng nhỏ văn bản từ người dùng, nhưng vì chúng chỉ hiển thị trên một dòng, nên chúng không lý tưởng để thu thập một lượng lớn văn bản. Đó là nơi mà các vật dụng
>>> greeting = tk.Label(text="Hello, Tkinter")
09 đến!

Nhận đầu vào người dùng đa dòng với các tiện ích >>> greeting = tk.Label(text="Hello, Tkinter") 09

>>> greeting = tk.Label(text="Hello, Tkinter")
09 Các tiện ích được sử dụng để nhập văn bản, giống như các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08. Sự khác biệt là các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09 có thể chứa nhiều dòng văn bản. Với tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09, người dùng có thể nhập toàn bộ một đoạn hoặc thậm chí một số trang văn bản! Giống như với các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08, bạn có thể thực hiện ba hoạt động chính với các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09:
widgets are used for entering text, just like
>>> greeting = tk.Label(text="Hello, Tkinter")
08 widgets. The difference is that
>>> greeting = tk.Label(text="Hello, Tkinter")
09 widgets may contain multiple lines of text. With a
>>> greeting = tk.Label(text="Hello, Tkinter")
09 widget, a user can input a whole paragraph or even several pages of text! Just like with
>>> greeting = tk.Label(text="Hello, Tkinter")
08 widgets, you can perform three main operations with
>>> greeting = tk.Label(text="Hello, Tkinter")
09 widgets:

  1. Truy xuất văn bản với
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    60
    with
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    60
  2. Xóa văn bản bằng
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    61
    with
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    61
  3. Chèn văn bản với
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    62
    with
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    62

Mặc dù các tên phương thức giống như các phương thức

>>> greeting = tk.Label(text="Hello, Tkinter")
08, nhưng chúng hoạt động hơi khác một chút. Đó là thời gian để có được bàn tay của bạn bị bẩn bằng cách tạo một tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09 và xem những gì nó có thể làm.

Trong vỏ Python của bạn, hãy tạo một cửa sổ trống mới và đóng gói tiện ích

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
15 vào nó:

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
1

Văn bản Widget bây giờ đọc

>>> greeting = tk.Label(text="Hello, Tkinter")
74:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

>>> greeting = tk.Label(text="Hello, Tkinter")
08 Các widget rất tuyệt vời để thu thập một lượng nhỏ văn bản từ người dùng, nhưng vì chúng chỉ hiển thị trên một dòng, nên chúng không lý tưởng để thu thập một lượng lớn văn bản. Đó là nơi mà các vật dụng
>>> greeting = tk.Label(text="Hello, Tkinter")
09 đến!Enter and type
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
18 on the second line. The window should now look like this:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Nhận đầu vào người dùng đa dòng với các tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
09

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
2

>>> greeting = tk.Label(text="Hello, Tkinter")
09 Các tiện ích được sử dụng để nhập văn bản, giống như các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08. Sự khác biệt là các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09 có thể chứa nhiều dòng văn bản. Với tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09, người dùng có thể nhập toàn bộ một đoạn hoặc thậm chí một số trang văn bản! Giống như với các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08, bạn có thể thực hiện ba hoạt động chính với các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09:start index and an end index. Indices in
>>> greeting = tk.Label(text="Hello, Tkinter")
09 widgets work differently than in
>>> greeting = tk.Label(text="Hello, Tkinter")
08 widgets. Since
>>> greeting = tk.Label(text="Hello, Tkinter")
09 widgets can have several lines of text, an index must contain two pieces of information:

  1. Truy xuất văn bản với
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    60
    of a character
  2. Xóa văn bản bằng
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    61
    of a character on that line

Chèn văn bản với

>>> greeting = tk.Label(text="Hello, Tkinter")
62

Mặc dù các tên phương thức giống như các phương thức

>>> greeting = tk.Label(text="Hello, Tkinter")
08, nhưng chúng hoạt động hơi khác một chút. Đó là thời gian để có được bàn tay của bạn bị bẩn bằng cách tạo một tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09 và xem những gì nó có thể làm.

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
3

Trong vỏ Python của bạn, hãy tạo một cửa sổ trống mới và đóng gói tiện ích

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
15 vào nó:

Các hộp văn bản lớn hơn nhiều so với các tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08 theo mặc định. Ở đây, những gì cửa sổ tạo ở trên trông giống như:

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
4

Nhấp vào bất cứ nơi nào bên trong cửa sổ để kích hoạt hộp văn bản. Nhập từ

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
17. Sau đó nhấn Enter và nhập
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
18 trên dòng thứ hai. Cửa sổ bây giờ trông như thế này:

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
5

Giống như với các tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08, bạn có thể truy xuất văn bản từ tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09 bằng
>>> greeting = tk.Label(text="Hello, Tkinter")
60. Tuy nhiên, việc gọi
>>> greeting = tk.Label(text="Hello, Tkinter")
60 không có đối số nào không trả lại toàn văn trong hộp văn bản giống như các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08. Nó làm tăng một ngoại lệ:

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
6

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
24 yêu cầu ít nhất một đối số. Gọi
>>> greeting = tk.Label(text="Hello, Tkinter")
60 với một chỉ mục trả về một ký tự duy nhất. Để truy xuất một số ký tự, bạn cần vượt qua chỉ mục bắt đầu và chỉ mục kết thúc. Các chỉ số trong các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09 hoạt động khác với các tiện ích ____10108. Vì các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
09 có thể có một số dòng văn bản, nên một chỉ mục phải chứa hai phần thông tin:

Số dòng của một ký tự

  1. Vị trí của một nhân vật trên dòng đósingle argument
  2. Số dòng bắt đầu bằng
    import tkinter as tk
    
    window = tk.Tk()
    label = tk.Label(text="Python rocks!")
    label.pack()
    
    window.mainloop()
    
    29 và vị trí ký tự bắt đầu bằng
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    42. Để tạo một chỉ mục, bạn tạo một chuỗi của biểu mẫu
    import tkinter as tk
    
    window = tk.Tk()
    label = tk.Label(text="Python rocks!")
    label.pack()
    
    window.mainloop()
    
    31, thay thế
    import tkinter as tk
    
    window = tk.Tk()
    label = tk.Label(text="Python rocks!")
    label.pack()
    
    window.mainloop()
    
    32 bằng số dòng và
    import tkinter as tk
    
    window = tk.Tk()
    label = tk.Label(text="Python rocks!")
    label.pack()
    
    window.mainloop()
    
    33 bằng số ký tự. Ví dụ,
    import tkinter as tk
    
    window = tk.Tk()
    label = tk.Label(text="Python rocks!")
    label.pack()
    
    window.mainloop()
    
    34 đại diện cho ký tự đầu tiên trên dòng đầu tiên và
    import tkinter as tk
    
    window = tk.Tk()
    label = tk.Label(text="Python rocks!")
    label.pack()
    
    window.mainloop()
    
    35 đại diện cho ký tự thứ tư trên dòng thứ hai.two arguments

Sử dụng chỉ mục

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
34 để lấy chữ cái đầu tiên từ hộp văn bản mà bạn đã tạo trước đó:

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
7

Có năm chữ cái trong từ

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
17 và số ký tự của
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
38 là
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
39, vì số ký tự bắt đầu từ
>>> greeting = tk.Label(text="Hello, Tkinter")
42 và từ
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
17 bắt đầu ở vị trí đầu tiên trong hộp văn bản. Giống như với các lát chuỗi python, để có được toàn bộ từ
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
17 từ hộp văn bản, chỉ mục cuối phải nhiều hơn một chỉ mục của ký tự cuối cùng được đọc.

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Vì vậy, để có được từ

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
17 từ hộp văn bản, hãy sử dụng
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
34 cho chỉ mục đầu tiên và
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
45 cho chỉ mục thứ hai:

Để có được từ

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
18 trên dòng thứ hai của hộp văn bản, hãy thay đổi số dòng trong mỗi chỉ mục thành
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
47:

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
8

Lưu ý rằng văn bản đã biến mất từ ​​dòng đầu tiên. Điều này để lại một dòng trống theo sau từ

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
18 trên dòng thứ hai:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Mặc dù bạn có thể nhìn thấy nó, nhưng vẫn có một nhân vật trên dòng đầu tiên. Nó là một nhân vật mới! Bạn có thể xác minh điều này bằng cách sử dụng

>>> greeting = tk.Label(text="Hello, Tkinter")
60:

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
9

Nếu bạn xóa ký tự đó, thì phần còn lại của nội dung của hộp văn bản sẽ thay đổi một dòng:

>>>

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
7

Bây giờ,

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
18 nằm trên dòng đầu tiên của hộp văn bản:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Cố gắng xóa phần còn lại của văn bản trong hộp văn bản. Đặt

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
34 làm chỉ mục bắt đầu và sử dụng
>>> greeting = tk.Label(text="Hello, Tkinter")
89 cho chỉ mục thứ hai:

>>>

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
1

Hộp văn bản hiện đang trống:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Bạn có thể chèn văn bản vào hộp văn bản bằng

>>> greeting = tk.Label(text="Hello, Tkinter")
62:

>>>

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
2

Điều này chèn từ

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
17 ở đầu hộp văn bản, sử dụng cùng định dạng
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
69 được sử dụng bởi
>>> greeting = tk.Label(text="Hello, Tkinter")
60 để chỉ định vị trí chèn:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Kiểm tra những gì xảy ra nếu bạn cố gắng chèn từ

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
18 vào dòng thứ hai:

>>>

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
3

Thay vì chèn văn bản vào dòng thứ hai, văn bản được chèn ở cuối dòng đầu tiên:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Nếu bạn muốn chèn văn bản vào một dòng mới, thì bạn cần phải chèn một ký tự dòng mới theo cách thủ công vào chuỗi được chèn:

>>>

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
4

Bây giờ

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
18 nằm trên dòng thứ hai của hộp văn bản:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

>>> greeting = tk.Label(text="Hello, Tkinter")
62 sẽ làm một trong hai điều:

  1. Chèn văn bản tại vị trí được chỉ định nếu có văn bản tại hoặc sau vị trí đó. at the specified position if there’s already text at or after that position.
  2. Nối văn bản vào dòng được chỉ định nếu số ký tự lớn hơn chỉ mục của ký tự cuối cùng trong hộp văn bản. to the specified line if the character number is greater than the index of the last character in the text box.

Nó thường không thực tế để thử và theo dõi chỉ số của nhân vật cuối cùng là gì. Cách tốt nhất để chèn văn bản ở cuối tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
09 là chuyển
>>> greeting = tk.Label(text="Hello, Tkinter")
89 cho tham số đầu tiên của
>>> greeting = tk.Label(text="Hello, Tkinter")
62:

>>>

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
5

Don Tiết quên bao gồm ký tự mới (

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
77) ở đầu văn bản nếu bạn muốn đặt nó trên một dòng mới:

>>>

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
6

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8,
>>> greeting = tk.Label(text="Hello, Tkinter")
07,
>>> greeting = tk.Label(text="Hello, Tkinter")
08 và
>>> greeting = tk.Label(text="Hello, Tkinter")
09 Các tiện ích chỉ là một vài trong số các vật dụng có sẵn trong Tkinter. Có một số khác, bao gồm các widget cho hộp kiểm, nút radio, thanh cuộn và thanh tiến trình. Để biết thêm thông tin về tất cả các tiện ích có sẵn, hãy xem danh sách các tiện ích bổ sung trong phần Tài nguyên bổ sung.

Gán các widget cho các khung với các tiện ích >>> greeting = tk.Label(text="Hello, Tkinter") 10

Trong hướng dẫn này, bạn sẽ chỉ làm việc với năm vật dụng:

  1. label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8
  2. >>> greeting = tk.Label(text="Hello, Tkinter")
    
    07
  3. >>> greeting = tk.Label(text="Hello, Tkinter")
    
    08
  4. >>> greeting = tk.Label(text="Hello, Tkinter")
    
    09
  5. >>> greeting = tk.Label(text="Hello, Tkinter")
    
    10

Đây là bốn chiếc mà bạn đã thấy cho đến nay cộng với tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
10.
>>> greeting = tk.Label(text="Hello, Tkinter")
10 Các tiện ích rất quan trọng để tổ chức bố cục các tiện ích của bạn trong một ứng dụng.
>>> greeting = tk.Label(text="Hello, Tkinter")
10
widgets are important for organizing the layout of your widgets in an application.

Trước khi bạn nhận được các chi tiết về việc đưa ra cách trình bày trực quan các tiện ích của bạn, hãy xem xét kỹ hơn về cách thức hoạt động của

>>> greeting = tk.Label(text="Hello, Tkinter")
10 và cách bạn có thể gán các vật dụng khác cho chúng. Tập lệnh sau tạo tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
10 trống và gán nó cho cửa sổ ứng dụng chính:

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
7

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
92 gói khung vào cửa sổ để cửa sổ kích thước nhỏ nhất có thể để bao gồm khung. Khi bạn chạy tập lệnh trên, bạn sẽ nhận được một số đầu ra không thú vị nghiêm trọng:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Một tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
10 trống thực tế là vô hình. Khung được cho là tốt nhất là các thùng chứa cho các vật dụng khác. Bạn có thể gán một tiện ích cho khung bằng cách đặt thuộc tính Widget
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
94:containers for other widgets. You can assign a widget to a frame by setting the widget’s
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
94 attribute:

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
8

Để có được cảm giác về cách thức hoạt động của nó, hãy viết một tập lệnh tạo ra hai tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
10 được gọi là
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
96 và
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
97. Trong tập lệnh này,
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
96 chứa một nhãn có văn bản
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
99 và
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
97 chứa nhãn
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
01. Ở đây, một cách để làm điều này:

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
9

Lưu ý rằng

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
96 được đóng gói vào cửa sổ trước
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
97. Cửa sổ mở hiển thị nhãn trong
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
96 phía trên nhãn trong
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
97:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Bây giờ hãy xem điều gì xảy ra khi bạn trao đổi thứ tự của

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
06 và
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
07:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
0

Đầu ra trông như thế này:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Bây giờ

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
08 là trên đầu. Vì
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
08 được gán cho
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
97, nó di chuyển đến bất cứ nơi nào
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
97 được định vị.

Tất cả bốn loại tiện ích mà bạn đã học được về ____________ 98,

>>> greeting = tk.Label(text="Hello, Tkinter")
07,
>>> greeting = tk.Label(text="Hello, Tkinter")
08 và ________ 109, đã có một thuộc tính
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
94 mà bạn đã đặt ra khi bạn khởi tạo chúng. Bằng cách đó, bạn có thể kiểm soát
>>> greeting = tk.Label(text="Hello, Tkinter")
10 mà một tiện ích được gán cho.
>>> greeting = tk.Label(text="Hello, Tkinter")
10 Các widget là tuyệt vời để tổ chức các tiện ích khác một cách hợp lý. Các tiện ích liên quan có thể được gán cho cùng một khung để, nếu khung được di chuyển trong cửa sổ, thì các tiện ích liên quan sẽ ở lại với nhau.

Ngoài việc nhóm các tiện ích của bạn một cách hợp lý, các tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
10 có thể thêm một chút bùng phát vào bản trình bày trực quan của ứng dụng của bạn. Đọc tiếp để xem cách tạo các đường viền khác nhau cho các tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
10.visual presentation of your application. Read on to see how to create various borders for
>>> greeting = tk.Label(text="Hello, Tkinter")
10 widgets.

Điều chỉnh sự xuất hiện của khung với các bức phù điêu

Các tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
10 có thể được cấu hình với thuộc tính
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
22 tạo ra một đường viền xung quanh khung. Bạn có thể đặt
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
22 thành bất kỳ giá trị nào sau đây:

  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    24: Không có hiệu ứng biên giới (giá trị mặc định)
    Has no border effect (the default value)
  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    25: Tạo hiệu ứng chìm
    Creates a sunken effect
  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    26: Tạo hiệu ứng nâng cao
    Creates a raised effect
  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    27: Tạo hiệu ứng biên giới có rãnh
    Creates a grooved border effect
  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    28: Tạo hiệu ứng gồ ghề
    Creates a ridged effect

Để áp dụng hiệu ứng biên giới, bạn phải đặt thuộc tính

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
29 thành giá trị lớn hơn
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29. Thuộc tính này điều chỉnh chiều rộng của đường viền trong pixel. Cách tốt nhất để có được cảm giác cho mỗi hiệu ứng trông như thế nào là tự mình nhìn thấy chúng. Dưới đây, một tập lệnh đóng gói năm
>>> greeting = tk.Label(text="Hello, Tkinter")
10 vào một cửa sổ, mỗi bộ có giá trị khác nhau cho đối số
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
22:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
1

Ở đây, một sự cố của kịch bản này:

  • Các dòng 3 đến 9 Tạo một từ điển có các khóa là tên của các hiệu ứng cứu trợ khác nhau có sẵn trong Tkinter. Các giá trị là các đối tượng Tkinter tương ứng. Từ điển này được gán cho biến

    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    33. create a dictionary whose keys are the names of the different relief effects available in Tkinter. The values are the corresponding Tkinter objects. This dictionary is assigned to the
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    33 variable.

  • Dòng 13 bắt đầu một vòng lặp

    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    34 để lặp qua từng mục trong từ điển
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    33.
    starts a
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    34 loop to loop over each item in the
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    33 dictionary.

  • Dòng 14 tạo tiện ích

    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    10 mới và gán nó cho đối tượng
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    6. Thuộc tính
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    22 được đặt thành cứu trợ tương ứng trong từ điển
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    33 và thuộc tính
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    40 được đặt thành
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    51 để hiệu ứng có thể nhìn thấy.
    creates a new
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    10 widget and assigns it to the
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    6 object. The
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    22 attribute is set to the corresponding relief in the
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    33 dictionary, and the
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    40 attribute is set to
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    51 so that the effect is visible.

  • Dòng 15 gói

    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    10 vào cửa sổ bằng
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    03. Đối số từ khóa
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    44 cho Tkinter theo hướng đóng gói các đối tượng
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    45. Bạn sẽ thấy thêm về cách thức hoạt động của nó trong phần tiếp theo.
    packs the
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    10 into the window using
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    03. The
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    44 keyword argument tells Tkinter in which direction to pack the
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    45 objects. You’ll see more about how this works in the next section.

  • Các dòng 16 và 17 tạo tiện ích

    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8 để hiển thị tên của sự cứu trợ và đóng gói nó vào đối tượng
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    45 bạn vừa tạo.
    create a
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8 widget to display the name of the relief and pack it into the
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    45 object you just created.

Cửa sổ được tạo ra bởi tập lệnh trên trông như thế này:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Trong hình ảnh này, bạn có thể thấy các hiệu ứng sau:

  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    24 tạo ra một khung dường như phẳng.
    creates a frame that appears to be flat.
  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    25 thêm một đường viền mang lại cho khung hình xuất hiện của việc bị chìm vào cửa sổ.
    adds a border that gives the frame the appearance of being sunken into the window.
  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    26 cung cấp cho khung một đường viền khiến nó xuất hiện từ màn hình.
    gives the frame a border that makes it appear to stick out from the screen.
  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    27 Thêm một đường viền xuất hiện dưới dạng một rãnh chìm xung quanh một khung phẳng khác.
    adds a border that appears as a sunken groove around an otherwise flat frame.
  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    28 cho sự xuất hiện của một đôi môi nâng xung quanh mép của khung.
    gives the appearance of a raised lip around the edge of the frame.

Những hiệu ứng này cung cấp cho ứng dụng Python Gui Tkinter của bạn một chút hấp dẫn trực quan.

Hiểu các quy ước đặt tên Widget

Khi bạn tạo một tiện ích, bạn có thể đặt cho nó bất kỳ tên nào bạn thích, miễn là nó là một định danh Python hợp lệ. Nó thường là một ý tưởng tốt để bao gồm tên của lớp Widget trong tên biến mà bạn gán cho phiên bản Widget. Ví dụ: nếu tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 được sử dụng để hiển thị tên người dùng, thì bạn có thể đặt tên cho tiện ích
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
54. Tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
08 được sử dụng để thu thập độ tuổi của người dùng có thể được gọi là
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
56.valid Python identifier. It’s usually a good idea to include the name of the widget class in the variable name that you assign to the widget instance. For example, if a
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 widget is used to display a user’s name, then you might name the widget
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
54. An
>>> greeting = tk.Label(text="Hello, Tkinter")
08 widget used to collect a user’s age might be called
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
56.

Khi bạn bao gồm tên lớp Widget trong tên biến, bạn sẽ giúp mình và bất kỳ ai khác cần đọc mã của bạn để hiểu loại tiện ích nào mà tên biến đề cập đến. Tuy nhiên, sử dụng tên đầy đủ của lớp Widget có thể dẫn đến các tên biến dài, vì vậy bạn có thể muốn áp dụng một tốc ký để đề cập đến từng loại tiện ích. Đối với phần còn lại của hướng dẫn này, bạn sẽ sử dụng các tiền tố tốc ký sau đây để đặt tên cho các widget:

Lớp tiện íchTiền tố tên biếnThí dụ
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
58
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
59
>>> greeting = tk.Label(text="Hello, Tkinter")
07
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
61
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
62
>>> greeting = tk.Label(text="Hello, Tkinter")
08
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
64
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
65
>>> greeting = tk.Label(text="Hello, Tkinter")
09
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
67
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
68
>>> greeting = tk.Label(text="Hello, Tkinter")
10
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
70
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
71

Trong phần này, bạn đã học cách tạo một cửa sổ, sử dụng các widget và làm việc với các khung. Tại thời điểm này, bạn có thể tạo một số cửa sổ đơn giản hiển thị tin nhắn, nhưng bạn vẫn chưa tạo ra một ứng dụng toàn diện. Trong phần tiếp theo, bạn sẽ học cách kiểm soát bố cục các ứng dụng của mình bằng các trình quản lý hình học mạnh mẽ của Tkinter.

Kiểm tra việc hiểu của bạn

Mở rộng khối mã bên dưới cho một bài tập để kiểm tra sự hiểu biết của bạn:

Viết một tập lệnh hoàn chỉnh hiển thị tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08 mà 40 đơn vị văn bản rộng và có nền trắng và văn bản màu đen. Sử dụng
>>> greeting = tk.Label(text="Hello, Tkinter")
62 để hiển thị văn bản trong tiện ích đọc
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
74.

Cửa sổ đầu ra sẽ trông như thế này:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Hãy thử bài tập này ngay bây giờ.

Bạn có thể mở rộng khối mã bên dưới để xem giải pháp:

Có một vài cách để giải quyết bài tập này. Ở đây, một giải pháp sử dụng các tham số

>>> greeting = tk.Label(text="Hello, Tkinter")
38 và
>>> greeting = tk.Label(text="Hello, Tkinter")
37 để đặt nền tảng và màu nền trước
>>> greeting = tk.Label(text="Hello, Tkinter")
08:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
2

Giải pháp này là tuyệt vời bởi vì nó đặt rõ ràng màu nền và màu tiền cảnh cho tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08.

Trên hầu hết các hệ thống, màu nền mặc định cho tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
08 có màu trắng và màu tiền cảnh mặc định là màu đen. Vì vậy, bạn có thể tạo cùng một cửa sổ với các tham số
>>> greeting = tk.Label(text="Hello, Tkinter")
38 và
>>> greeting = tk.Label(text="Hello, Tkinter")
37 bị bỏ lại:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
3

Hãy nhớ rằng mã của bạn có thể trông khác nhau.

Khi bạn đã sẵn sàng, bạn có thể chuyển sang phần tiếp theo.

Kiểm soát bố cục với người quản lý hình học

Cho đến bây giờ, bạn đã thêm các widget vào Windows và

>>> greeting = tk.Label(text="Hello, Tkinter")
10 các tiện ích bằng cách sử dụng
>>> greeting = tk.Label(text="Hello, Tkinter")
03, nhưng bạn đã học được chính xác phương pháp này làm gì. Hãy để rõ ràng mọi thứ lên! Bố cục ứng dụng trong Tkinter được kiểm soát với các nhà quản lý hình học. Mặc dù
>>> greeting = tk.Label(text="Hello, Tkinter")
03 là một ví dụ về trình quản lý hình học, nhưng nó không phải là người duy nhất. Tkinter có hai người khác:geometry managers. While
>>> greeting = tk.Label(text="Hello, Tkinter")
03 is an example of a geometry manager, it isn’t the only one. Tkinter has two others:

  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    85
  • >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    86

Mỗi cửa sổ hoặc

>>> greeting = tk.Label(text="Hello, Tkinter")
10 trong ứng dụng của bạn chỉ có thể sử dụng một trình quản lý hình học. Tuy nhiên, các khung khác nhau có thể sử dụng các trình quản lý hình học khác nhau, ngay cả khi chúng được gán cho khung hoặc cửa sổ bằng trình quản lý hình học khác. Bắt đầu bằng cách xem xét kỹ hơn
>>> greeting = tk.Label(text="Hello, Tkinter")
03.

Trình quản lý hình học >>> greeting = tk.Label(text="Hello, Tkinter") 03

Trình quản lý hình học

>>> greeting = tk.Label(text="Hello, Tkinter")
03 sử dụng thuật toán đóng gói để đặt các widget trong
>>> greeting = tk.Label(text="Hello, Tkinter")
10 hoặc cửa sổ theo thứ tự được chỉ định. Đối với một tiện ích nhất định, thuật toán đóng gói có hai bước chính:packing algorithm to place widgets in a
>>> greeting = tk.Label(text="Hello, Tkinter")
10 or window in a specified order. For a given widget, the packing algorithm has two primary steps:

  1. Tính toán một khu vực hình chữ nhật gọi là bưu kiện chỉ cao (hoặc rộng) đủ để giữ tiện ích và lấp đầy chiều rộng (hoặc chiều cao) còn lại trong cửa sổ với khoảng trống.parcel that’s just tall (or wide) enough to hold the widget and fills the remaining width (or height) in the window with blank space.
  2. Trung tâm tiện ích trong bưu kiện trừ khi một vị trí khác được chỉ định.

>>> greeting = tk.Label(text="Hello, Tkinter")
03 là mạnh mẽ, nhưng có thể khó hình dung. Cách tốt nhất để cảm nhận
>>> greeting = tk.Label(text="Hello, Tkinter")
03 là xem xét một số ví dụ. Xem điều gì xảy ra khi bạn
>>> greeting = tk.Label(text="Hello, Tkinter")
03 ba ____998 widget vào
>>> greeting = tk.Label(text="Hello, Tkinter")
10:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
4

>>> greeting = tk.Label(text="Hello, Tkinter")
03 đặt mỗi
>>> greeting = tk.Label(text="Hello, Tkinter")
10 bên dưới cái trước đó theo mặc định, theo thứ tự mà họ đã gán cho cửa sổ:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Mỗi

>>> greeting = tk.Label(text="Hello, Tkinter")
10 được đặt ở vị trí trên cùng có sẵn. Do đó, màu đỏ
>>> greeting = tk.Label(text="Hello, Tkinter")
10 được đặt ở đầu cửa sổ. Sau đó, màu vàng
>>> greeting = tk.Label(text="Hello, Tkinter")
10 được đặt ngay dưới màu đỏ và màu xanh
>>> greeting = tk.Label(text="Hello, Tkinter")
10 ngay dưới màu vàng.

Có ba bưu kiện vô hình, mỗi bưu kiện chứa một trong ba tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
10. Mỗi bưu kiện rộng bằng cửa sổ và cao như
>>> greeting = tk.Label(text="Hello, Tkinter")
10 mà nó chứa. Bởi vì không có điểm neo nào được chỉ định khi
>>> greeting = tk.Label(text="Hello, Tkinter")
03 được gọi cho mỗi
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
06, họ đã tập trung vào bên trong bưu kiện của họ. Đó là lý do tại sao mỗi
>>> greeting = tk.Label(text="Hello, Tkinter")
10 được tập trung vào cửa sổ.anchor point was specified when
>>> greeting = tk.Label(text="Hello, Tkinter")
03 was called for each
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
06 they’re all centered inside of their parcels. That’s why each
>>> greeting = tk.Label(text="Hello, Tkinter")
10 is centered in the window.

>>> greeting = tk.Label(text="Hello, Tkinter")
03 chấp nhận một số đối số từ khóa để cấu hình chính xác hơn vị trí tiện ích. Ví dụ: bạn có thể đặt đối số từ khóa
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
09 để chỉ định theo hướng mà các khung sẽ điền. Các tùy chọn là
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
10 để điền vào hướng ngang,
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
11 để điền theo chiều dọc và
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
12 để điền vào cả hai hướng. Tại đây, cách bạn sẽ xếp ba khung hình để mỗi khung hình lấp đầy toàn bộ cửa sổ theo chiều ngang:
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
09
keyword argument to specify in which direction the frames should fill. The options are
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
10 to fill in the horizontal direction,
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
11 to fill vertically, and
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
12 to fill in both directions. Here’s how you would stack the three frames so that each one fills the whole window horizontally:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
5

Lưu ý rằng

>>> greeting = tk.Label(text="Hello, Tkinter")
39 không được đặt trên bất kỳ tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
10 nào.
>>> greeting = tk.Label(text="Hello, Tkinter")
39 không còn cần thiết vì mỗi khung hình đặt
>>> greeting = tk.Label(text="Hello, Tkinter")
03 để lấp đầy theo chiều ngang, ghi đè bất kỳ chiều rộng nào bạn có thể đặt.

Cửa sổ được tạo ra bởi tập lệnh này trông như thế này:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Một trong những điều tốt đẹp về việc lấp đầy cửa sổ bằng

>>> greeting = tk.Label(text="Hello, Tkinter")
03 là việc điền đáp ứng với thay đổi kích thước cửa sổ. Hãy thử mở rộng cửa sổ được tạo bởi tập lệnh trước để xem cách thức hoạt động của nó. Khi bạn mở rộng cửa sổ, chiều rộng của ba tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
10 phát triển để lấp đầy cửa sổ:responsive to window resizing. Try widening the window generated by the previous script to see how this works. As you widen the window, the width of the three
>>> greeting = tk.Label(text="Hello, Tkinter")
10 widgets grow to fill the window:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Tuy nhiên, lưu ý rằng các vật dụng

>>> greeting = tk.Label(text="Hello, Tkinter")
10 don don mở rộng theo hướng thẳng đứng.

Đối số từ khóa

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
44 của
>>> greeting = tk.Label(text="Hello, Tkinter")
03 chỉ định ở phía bên của cửa sổ, tiện ích nên được đặt. Đây là những tùy chọn có sẵn:
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
44
keyword argument of
>>> greeting = tk.Label(text="Hello, Tkinter")
03 specifies on which side of the window the widget should be placed. These are the available options:

  • >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    22
  • >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    23
  • >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    24
  • >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    25

Nếu bạn không đặt

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
44, thì
>>> greeting = tk.Label(text="Hello, Tkinter")
03 sẽ tự động sử dụng
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
22 và đặt các tiện ích mới ở đầu cửa sổ hoặc ở phần trên cùng của cửa sổ đã bị chiếm bởi một tiện ích. Ví dụ: tập lệnh sau đặt ba khung bên cạnh từ trái sang phải và mở rộng từng khung hình để lấp đầy cửa sổ theo chiều dọc:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
6

Lần này, bạn phải chỉ định đối số từ khóa

>>> greeting = tk.Label(text="Hello, Tkinter")
40 trên ít nhất một trong các khung để buộc cửa sổ có chiều cao.

Cửa sổ kết quả trông như thế này:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Giống như khi bạn đặt

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
30 để làm cho các khung phản hồi khi bạn thay đổi kích thước cửa sổ theo chiều ngang, bạn có thể đặt
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
31 để làm cho các khung phản hồi khi bạn thay đổi kích thước cửa sổ theo chiều dọc:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Để làm cho bố cục thực sự phản hồi, bạn có thể đặt kích thước ban đầu cho các khung của mình bằng các thuộc tính

>>> greeting = tk.Label(text="Hello, Tkinter")
39 và
>>> greeting = tk.Label(text="Hello, Tkinter")
40. Sau đó, đặt đối số từ khóa
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
09 của
>>> greeting = tk.Label(text="Hello, Tkinter")
03 thành
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
12 và đặt đối số từ khóa
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
37 thành
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
38:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
7

Khi bạn chạy tập lệnh trên, bạn sẽ thấy một cửa sổ ban đầu trông giống như tệp bạn đã tạo trong ví dụ trước. Sự khác biệt là bây giờ bạn có thể thay đổi kích thước cửa sổ theo cách bạn muốn và các khung sẽ mở rộng và lấp đầy cửa sổ một cách có trách nhiệm:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Tuyệt đấy!

Trình quản lý hình học >>> import tkinter as tk >>> import tkinter.ttk as ttk 85

Bạn có thể sử dụng

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85 để kiểm soát vị trí chính xác mà tiện ích phải chiếm trong cửa sổ hoặc
>>> greeting = tk.Label(text="Hello, Tkinter")
10. Bạn phải cung cấp hai đối số từ khóa,
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
42 và
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
43, trong đó chỉ định các tọa độ X và Y cho góc trên cùng bên trái của tiện ích. Cả
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
42 và
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
43 đều được đo bằng pixel, không phải đơn vị văn bản.precise location that a widget should occupy in a window or
>>> greeting = tk.Label(text="Hello, Tkinter")
10. You must provide two keyword arguments,
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
42 and
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
43, which specify the x- and y-coordinates for the top-left corner of the widget. Both
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
42 and
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
43 are measured in pixels, not text units.

Hãy nhớ rằng nguồn gốc, trong đó

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
42 và
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
43 đều là
>>> greeting = tk.Label(text="Hello, Tkinter")
42, là góc trên cùng bên trái của
>>> greeting = tk.Label(text="Hello, Tkinter")
10 hoặc cửa sổ. Vì vậy, bạn có thể nghĩ về đối số
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
43 của
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85 là số pixel từ đỉnh cửa sổ và đối số
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
42 là số pixel từ cạnh trái của cửa sổ.origin, where
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
42 and
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
43 are both
>>> greeting = tk.Label(text="Hello, Tkinter")
42, is the top-left corner of the
>>> greeting = tk.Label(text="Hello, Tkinter")
10 or window. So, you can think of the
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
43 argument of
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85 as the number of pixels from the top of the window, and the
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
42 argument as the number of pixels from the left edge of the window.

Dưới đây, một ví dụ về cách trình quản lý hình học

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85 hoạt động:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
8

Ở đây, cách thức hoạt động của mã này:

  • Các dòng 5 và 6 tạo ra một tiện ích
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    10 mới được gọi là
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    45, đo rộng
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    56 pixel và cao
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    56 pixel và đóng gói nó vào cửa sổ với
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    03.
    create a new
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    10 widget called
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    45, measuring
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    56 pixels wide and
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    56 pixels tall, and pack it into the window with
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    03.
  • Các dòng 8 và 9 tạo ra một
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8 mới được gọi là
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    60 với nền màu đỏ và đặt nó vào
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    61 tại vị trí (0, 0).
    create a new
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8 called
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    60 with a red background and place it in
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    61 at position (0, 0).
  • Các dòng 11 và 12 tạo ra một
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8 thứ hai được gọi là
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    63 với nền màu vàng và đặt nó vào
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    61 ở vị trí (75, 75).
    create a second
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8 called
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    63 with a yellow background and place it in
    >>> tk.Label()
    <tkinter.Label object .!label>
    
    >>> ttk.Label()
    <tkinter.ttk.Label object .!label2>
    
    61 at position (75, 75).

Ở đây, cửa sổ mà mã tạo ra:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Lưu ý rằng nếu bạn chạy mã này trên một hệ điều hành khác sử dụng các kích thước và kiểu phông chữ khác nhau, thì nhãn thứ hai có thể bị che khuất một phần bởi cạnh cửa sổ. Đó là lý do tại sao

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85 được sử dụng thường xuyên. Ngoài ra, nó có hai nhược điểm chính:

  1. Bố cục có thể khó quản lý với
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    85. Điều này đặc biệt đúng nếu ứng dụng của bạn có rất nhiều widget.
  2. Bố cục được tạo ra với
    >>> import tkinter as tk
    >>> import tkinter.ttk as ttk
    
    85 aren đáp ứng. Họ không thay đổi khi cửa sổ được thay đổi kích thước.

Một trong những thách thức chính của phát triển GUI đa nền tảng là tạo ra các bố cục trông tốt cho dù họ đã xem nền tảng nào và

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85 là một lựa chọn kém để tạo ra các bố cục đáp ứng và đa nền tảng.

Điều đó không thể nói rằng bạn không bao giờ nên sử dụng

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85! Trong một số trường hợp, nó có thể chỉ là những gì bạn cần. Ví dụ: nếu bạn đang tạo giao diện GUI cho bản đồ, thì
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85 có thể là lựa chọn hoàn hảo để đảm bảo các tiện ích được đặt ở khoảng cách chính xác với nhau trên bản đồ.

>>> greeting = tk.Label(text="Hello, Tkinter")
03 thường là một lựa chọn tốt hơn so với
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85, nhưng ngay cả
>>> greeting = tk.Label(text="Hello, Tkinter")
03 cũng có một số nhược điểm. Vị trí của các vật dụng phụ thuộc vào thứ tự được gọi là ____10103, do đó có thể khó sửa đổi các ứng dụng hiện có mà không hiểu đầy đủ mã kiểm soát bố cục. Trình quản lý hình học
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 giải quyết rất nhiều vấn đề này, như bạn sẽ thấy trong phần tiếp theo.

Trình quản lý hình học >>> import tkinter as tk >>> import tkinter.ttk as ttk 86

Trình quản lý hình học mà bạn có thể sử dụng thường xuyên nhất là

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86, cung cấp tất cả sức mạnh của
>>> greeting = tk.Label(text="Hello, Tkinter")
03 ở định dạng mà dễ hiểu và duy trì hơn.

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 hoạt động bằng cách chia cửa sổ hoặc
>>> greeting = tk.Label(text="Hello, Tkinter")
10 thành các hàng và cột. Bạn chỉ định vị trí của một tiện ích bằng cách gọi
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 và chuyển các chỉ số hàng và cột cho các đối số từ khóa
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
82 và
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
83. Cả hai chỉ số hàng và cột bắt đầu tại
>>> greeting = tk.Label(text="Hello, Tkinter")
42, do đó, chỉ số hàng của
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29 và chỉ số cột của
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
47 cho
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 đặt một tiện ích vào cột thứ ba của hàng thứ hai.

Tập lệnh sau đây tạo ra một lưới khung 3 × 3 với các tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 được đóng gói trong chúng:

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
9

Ở đây, những gì cửa sổ kết quả trông như thế nào:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Bạn sử dụng hai người quản lý hình học trong ví dụ này. Mỗi khung được gắn vào

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6 với Trình quản lý hình học
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
0

Mỗi

>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
91 được gắn vào chính
>>> greeting = tk.Label(text="Hello, Tkinter")
10 với
>>> greeting = tk.Label(text="Hello, Tkinter")
03:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
1

Điều quan trọng cần nhận ra ở đây là mặc dù

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 được gọi trên mỗi đối tượng
>>> greeting = tk.Label(text="Hello, Tkinter")
10, Trình quản lý hình học áp dụng cho đối tượng
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6. Tương tự, bố cục của mỗi
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
45 được kiểm soát với trình quản lý hình học
>>> greeting = tk.Label(text="Hello, Tkinter")
03.

Các khung trong ví dụ trước được đặt chặt cạnh nhau. Để thêm một số không gian xung quanh mỗi khung hình, bạn có thể đặt phần đệm của từng ô trong lưới. Đadding chỉ là một khoảng trống nào đó bao quanh một tiện ích và đặt nội dung trực quan của nó.Padding is just some blank space that surrounds a widget and visually sets its content apart.

Hai loại đệm là đệm bên ngoài và bên trong. Phần đệm bên ngoài thêm một số không gian xung quanh bên ngoài của một ô lưới. Nó được kiểm soát với hai đối số từ khóa thành

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86:external and internal padding. External padding adds some space around the outside of a grid cell. It’s controlled with two keyword arguments to
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86:

  1. >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    00 Thêm đệm theo hướng ngang.
    adds padding in the horizontal direction.
  2. >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    01 Thêm đệm theo hướng thẳng đứng.
    adds padding in the vertical direction.

Cả

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
00 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
01 đều được đo bằng pixel, không phải đơn vị văn bản, do đó, đặt cả hai thành cùng một giá trị sẽ tạo ra cùng một lượng đệm theo cả hai hướng. Cố gắng thêm một số phần đệm xung quanh bên ngoài các khung từ ví dụ trước:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
2

Ở đây, cửa sổ kết quả:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

>>> greeting = tk.Label(text="Hello, Tkinter")
03 cũng có các tham số
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
00 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
01. Mã sau đây gần giống với mã trước đó, ngoại trừ việc bạn thêm năm pixel bổ sung xung quanh mỗi nhãn trong cả hai hướng
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
42 và
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
43:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
3

Phần đệm bổ sung xung quanh các vật dụng

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 cung cấp cho mỗi ô trong lưới một chút phòng thở giữa đường viền
>>> greeting = tk.Label(text="Hello, Tkinter")
10 và văn bản trong nhãn:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Trông khá đẹp! Nhưng nếu bạn cố gắng và mở rộng cửa sổ theo bất kỳ hướng nào, thì bạn sẽ nhận thấy rằng bố cục không phản hồi rất nhanh:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Toàn bộ lưới ở góc trên cùng bên trái khi cửa sổ mở rộng.

Bằng cách sử dụng

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
11 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
12 trên đối tượng
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6, bạn có thể điều chỉnh cách các hàng và cột của lưới phát triển khi cửa sổ được thay đổi kích thước. Hãy nhớ rằng, lưới được gắn vào
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6, mặc dù bạn đang gọi
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 trên mỗi tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
10. Cả
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
11 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
12 đều có ba đối số thiết yếu:

  1. Chỉ mục: Chỉ mục của cột lưới hoặc hàng mà bạn muốn định cấu hình hoặc danh sách các chỉ số để định cấu hình nhiều hàng hoặc cột cùng một lúc The index of the grid column or row that you want to configure or a list of indices to configure multiple rows or columns at the same time
  2. Trọng lượng: Một đối số từ khóa được gọi là
    >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    19 xác định cách cột hoặc hàng sẽ phản hồi với thay đổi kích thước cửa sổ, so với các cột và hàng khác
    A keyword argument called
    >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    19 that determines how the column or row should respond to window resizing, relative to the other columns and rows
  3. Kích thước tối thiểu: Đối số từ khóa được gọi là
    >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    20 đặt kích thước tối thiểu của chiều cao hàng hoặc chiều rộng cột tính bằng pixel
    A keyword argument called
    >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    20 that sets the minimum size of the row height or column width in pixels

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
19 được đặt thành
>>> greeting = tk.Label(text="Hello, Tkinter")
42 theo mặc định, điều đó có nghĩa là cột hoặc hàng không mở rộng khi cửa sổ thay đổi kích thước. Nếu mỗi cột hoặc hàng được cho trọng lượng
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29, thì tất cả chúng đều phát triển với cùng một tốc độ. Nếu một cột có trọng lượng
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29 và một trọng lượng khác là
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
47, thì cột thứ hai sẽ mở rộng với tỷ lệ gấp đôi của đầu tiên. Điều chỉnh tập lệnh trước để xử lý thay đổi kích thước cửa sổ tốt hơn:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
4

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
11 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
12 được đặt trong phần thân của vòng
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
34 bên ngoài. Bạn có thể định cấu hình rõ ràng từng cột và hàng bên ngoài vòng lặp
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
34, nhưng điều đó sẽ yêu cầu viết thêm sáu dòng mã.

Trên mỗi lần lặp của vòng lặp, cột và hàng ____ 530 được cấu hình để có trọng lượng là

import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29. Điều này đảm bảo rằng hàng và cột mở rộng với cùng tốc độ bất cứ khi nào cửa sổ được thay đổi kích thước. Đối số
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
20 được đặt thành
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
33 cho mỗi cột và
>>> greeting = tk.Label(text="Hello, Tkinter")
57 cho mỗi hàng. Điều này đảm bảo rằng tiện ích
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 luôn hiển thị văn bản của mình mà không cần loại bỏ bất kỳ ký tự nào, ngay cả khi kích thước cửa sổ cực kỳ nhỏ.

Kết quả là bố cục lưới mở rộng và hợp đồng một cách trơn tru khi cửa sổ được thay đổi kích thước:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Hãy tự mình thử để cảm nhận về cách nó hoạt động! Chơi xung quanh với các tham số

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
19 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
20 để xem chúng ảnh hưởng đến lưới như thế nào.

Theo mặc định, các widget được tập trung vào các ô lưới của chúng. Ví dụ: mã sau tạo hai tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và đặt chúng vào lưới với một cột và hai hàng:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
5

Mỗi ô lưới rộng

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
39 pixel và cao
>>> greeting = tk.Label(text="Hello, Tkinter")
96 pixel. Các nhãn được đặt ở trung tâm của mỗi ô, như bạn có thể thấy trong hình sau:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Bạn có thể thay đổi vị trí của từng nhãn bên trong ô lưới bằng tham số

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41, chấp nhận một chuỗi chứa một hoặc nhiều chữ cái sau:

  • >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    42 hoặc
    >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    43 để phù hợp với phần trung tâm hàng đầu của ô
    to align to the top-center part of the cell
  • >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    44 hoặc
    >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    45 để phù hợp với phía trung tâm bên phải của ô
    to align to the right-center side of the cell
  • >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    46 hoặc
    >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    47 để phù hợp với phần trung tâm dưới cùng của ô
    to align to the bottom-center part of the cell
  • >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    48 hoặc
    >>> from tkinter import *
    >>> from tkinter.ttk import *
    
    >>> Label()
    <tkinter.ttk.Label object .!label>
    
    >>> Text()
    <tkinter.Text object .!text>
    
    49 để phù hợp với phía trung tâm bên trái của ô
    to align to the left-center side of the cell

Các chữ cái

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
42,
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
46,
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
44 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
48 đến từ các hướng hồng y phía bắc, nam, đông và tây. Cài đặt
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 thành
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
42 trên cả hai nhãn trong vị trí mã trước đó mỗi nhãn ở trung tâm trên cùng của ô lưới của nó:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
6

Ở đây, đầu ra:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Bạn có thể kết hợp nhiều chữ cái trong một chuỗi để định vị từng nhãn trong góc của ô lưới của nó:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
7

Trong ví dụ này, tham số

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 của
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
60 được đặt thành
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
58, đặt nhãn ở góc trên bên phải của ô lưới của nó.
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
63 được định vị ở góc dưới bên trái bằng cách chuyển
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
60 đến
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41. Ở đây, những gì trông giống như trong cửa sổ:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Khi một tiện ích được định vị với

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41, kích thước của chính tiện ích chỉ đủ lớn để chứa bất kỳ văn bản và nội dung nào khác bên trong nó. Nó đã thắng được lấp đầy toàn bộ ô lưới. Để lấp đầy lưới, bạn có thể chỉ định
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
63 để buộc tiện ích lấp đầy ô theo hướng thẳng đứng hoặc
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
64 để lấp đầy ô theo hướng ngang. Để lấp đầy toàn bộ ô, đặt
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 thành
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
66. Ví dụ sau đây minh họa từng tùy chọn sau:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
8

Đây là những gì đầu ra trông như thế nào:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Những gì ví dụ trên minh họa là tham số Trình quản lý hình học

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 có thể được sử dụng để đạt được các hiệu ứng tương tự như tham số Trình quản lý hình học
>>> greeting = tk.Label(text="Hello, Tkinter")
03. Sự tương ứng giữa các tham số
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 và
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
09 được tóm tắt trong bảng sau:

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86
>>> greeting = tk.Label(text="Hello, Tkinter")
03
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
75
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
31
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
77
>>> tk.Label()
<tkinter.Label object .!label>

>>> ttk.Label()
<tkinter.ttk.Label object .!label2>
30
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
79
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
80

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 là một trình quản lý hình học mạnh mẽ. Nó thường dễ hiểu hơn
>>> greeting = tk.Label(text="Hello, Tkinter")
03 và linh hoạt hơn nhiều so với
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
85. Khi bạn tạo các ứng dụng Tkinter mới, bạn nên xem xét sử dụng
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 làm Trình quản lý hình học chính của bạn.

Bây giờ, bạn đã có được các nguyên tắc cơ bản của các nhà quản lý hình học cho Tkinter Gui Gui Framework, bước tiếp theo là gán các hành động cho các nút để đưa các ứng dụng của bạn vào cuộc sống.

Kiểm tra việc hiểu của bạn

Mở rộng khối mã bên dưới cho một bài tập để kiểm tra sự hiểu biết của bạn:

Dưới đây là hình ảnh của một biểu mẫu nhập địa chỉ được thực hiện bằng Tkinter:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Viết một tập lệnh hoàn chỉnh để tạo lại cửa sổ. Bạn có thể sử dụng bất kỳ trình quản lý hình học nào bạn thích.

Bạn có thể mở rộng khối mã bên dưới để xem giải pháp:

Có nhiều cách khác nhau để giải quyết bài tập này. Nếu giải pháp của bạn tạo ra một cửa sổ giống hệt với cái trong câu lệnh tập thể dục, thì xin chúc mừng! Bạn đã giải quyết thành công bài tập! Dưới đây, bạn có thể xem xét hai giải pháp sử dụng Trình quản lý hình học

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86.

Một giải pháp tạo ra tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và
>>> greeting = tk.Label(text="Hello, Tkinter")
08 với các cài đặt mong muốn cho mỗi trường:

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
9

Không có gì sai với giải pháp này. Nó có một chút dài, nhưng mọi thứ đều rất rõ ràng. Nếu bạn muốn thay đổi một cái gì đó, thì nó rõ ràng để xem chính xác nơi để làm như vậy.

Điều đó nói rằng, giải pháp có thể được rút ngắn đáng kể bằng cách nhận ra rằng mỗi

>>> greeting = tk.Label(text="Hello, Tkinter")
08 có cùng chiều rộng và tất cả những gì bạn cần cho mỗi
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 là văn bản:

label = tk.Label(text="Hello, Tkinter")
0

Trong giải pháp này, một danh sách được sử dụng để lưu trữ các chuỗi cho từng nhãn trong biểu mẫu. Họ được lưu trữ theo thứ tự mà mỗi trường biểu mẫu sẽ xuất hiện. Sau đó,

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
90 có cả chỉ mục và chuỗi từ mỗi giá trị trong danh sách
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
91.

Khi bạn đã sẵn sàng, bạn có thể chuyển sang phần tiếp theo.

Làm cho các ứng dụng của bạn tương tác

Đến bây giờ, bạn có một ý tưởng khá hay về cách tạo một cửa sổ với Tkinter, thêm một số tiện ích và kiểm soát bố cục ứng dụng. Điều đó rất tuyệt, nhưng các ứng dụng không nên trông rất tốt, họ thực sự cần phải làm gì đó! Trong phần này, bạn sẽ học cách đưa các ứng dụng của mình vào cuộc sống bằng cách thực hiện các hành động bất cứ khi nào xảy ra một số sự kiện.events occur.

Sử dụng các sự kiện và trình xử lý sự kiện

Khi bạn tạo một ứng dụng Tkinter, bạn phải gọi

>>> greeting = tk.Label(text="Hello, Tkinter")
04 để bắt đầu vòng lặp sự kiện. Trong vòng lặp sự kiện, ứng dụng của bạn kiểm tra nếu một sự kiện đã xảy ra. Nếu vậy, thì nó sẽ thực thi một số mã để đáp ứng.event loop. During the event loop, your application checks if an event has occurred. If so, then it’ll execute some code in response.

Vòng lặp sự kiện được cung cấp cho bạn Tkinter, vì vậy bạn không phải viết bất kỳ mã nào tự kiểm tra các sự kiện. Tuy nhiên, bạn phải viết mã sẽ được thực thi để đáp ứng với một sự kiện. Trong Tkinter, bạn viết các chức năng được gọi là Trình xử lý sự kiện cho các sự kiện bạn sử dụng trong ứng dụng của mình.event handlers for the events that you use in your application.

Bạn sẽ viết vòng lặp sự kiện của riêng bạn để hiểu rõ hơn về cách thức hoạt động của Vòng lặp sự kiện của Tkinter. Bằng cách đó, bạn có thể thấy vòng lặp sự kiện của Tkinter, phù hợp với ứng dụng của bạn và phần nào bạn cần tự viết.

Giả sử có một danh sách gọi là

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
93 có chứa các đối tượng sự kiện. Một đối tượng sự kiện mới được tự động được thêm vào
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
93 mỗi khi một sự kiện xảy ra trong chương trình của bạn. Bạn không cần phải thực hiện cơ chế cập nhật này. Nó chỉ tự động xảy ra cho bạn trong ví dụ khái niệm này. Sử dụng một vòng lặp vô hạn, bạn có thể liên tục kiểm tra xem có bất kỳ đối tượng sự kiện nào trong
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
93:

label = tk.Label(text="Hello, Tkinter")
1

Ngay bây giờ, vòng lặp sự kiện mà bạn đã tạo ra không làm bất cứ điều gì với

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
96. Hãy để thay đổi điều đó. Giả sử ứng dụng của bạn cần phải trả lời Keypresses. Bạn cần kiểm tra xem
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
96 có được tạo bởi người dùng nhấn phím trên bàn phím của họ không và nếu vậy, hãy chuyển
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
96 cho chức năng xử lý sự kiện cho Keypresses.

Giả sử rằng

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
96 có thuộc tính
label = tk.Label(text="Hello, Tkinter")
00 được đặt thành chuỗi
label = tk.Label(text="Hello, Tkinter")
01 nếu sự kiện là đối tượng sự kiện Keypress và thuộc tính
label = tk.Label(text="Hello, Tkinter")
02 chứa ký tự của khóa được nhấn. Tạo chức năng
label = tk.Label(text="Hello, Tkinter")
03 mới và cập nhật mã vòng lặp sự kiện của bạn:

label = tk.Label(text="Hello, Tkinter")
2

Khi bạn gọi

>>> greeting = tk.Label(text="Hello, Tkinter")
04, một cái gì đó giống như vòng lặp trên được chạy cho bạn. Phương pháp này chăm sóc hai phần của vòng lặp cho bạn:

  1. Nó duy trì một danh sách các sự kiện đã xảy ra.list of events that have occurred.
  2. Nó chạy một người xử lý sự kiện bất cứ khi nào một sự kiện mới được thêm vào danh sách đó.event handler any time a new event is added to that list.

Cập nhật vòng lặp sự kiện của bạn để sử dụng

>>> greeting = tk.Label(text="Hello, Tkinter")
04 thay vì vòng lặp sự kiện của riêng bạn:

label = tk.Label(text="Hello, Tkinter")
3

label = tk.Label(text="Hello, Tkinter")
06 chăm sóc rất nhiều cho bạn, nhưng có một cái gì đó còn thiếu từ mã trên. Làm thế nào để Tkinter biết khi nào nên sử dụng
label = tk.Label(text="Hello, Tkinter")
03? Các tiện ích Tkinter có một phương pháp gọi là
label = tk.Label(text="Hello, Tkinter")
08 cho mục đích này.

Sử dụng label = tk.Label(text="Hello, Tkinter") 08

Để gọi một trình xử lý sự kiện bất cứ khi nào một sự kiện xảy ra trên một tiện ích, hãy sử dụng

label = tk.Label(text="Hello, Tkinter")
08. Người xử lý sự kiện được cho là bị ràng buộc với sự kiện vì nó được gọi là mỗi khi sự kiện xảy ra. Bạn sẽ tiếp tục với ví dụ Keypress từ phần trước và sử dụng
label = tk.Label(text="Hello, Tkinter")
08 để liên kết
label = tk.Label(text="Hello, Tkinter")
03 với sự kiện Keypress:bound to the event because it’s called every time the event occurs. You’ll continue with the keypress example from the previous section and use
label = tk.Label(text="Hello, Tkinter")
08 to bind
label = tk.Label(text="Hello, Tkinter")
03 to the keypress event:

label = tk.Label(text="Hello, Tkinter")
4

Ở đây, trình xử lý sự kiện

label = tk.Label(text="Hello, Tkinter")
03 được liên kết với một sự kiện
label = tk.Label(text="Hello, Tkinter")
14 bằng cách sử dụng
label = tk.Label(text="Hello, Tkinter")
15. Bất cứ khi nào một khóa được nhấn trong khi ứng dụng đang chạy, chương trình của bạn sẽ in ký tự của phím được nhấn.

label = tk.Label(text="Hello, Tkinter")
08 luôn mất ít nhất hai đối số:

  1. Một sự kiện mà Lừa được đại diện bởi một chuỗi của Mẫu
    label = tk.Label(text="Hello, Tkinter")
    
    17, trong đó
    label = tk.Label(text="Hello, Tkinter")
    
    18 có thể là bất kỳ sự kiện nào của Tkinterevent that’s represented by a string of the form
    label = tk.Label(text="Hello, Tkinter")
    
    17, where
    label = tk.Label(text="Hello, Tkinter")
    
    18 can be any of Tkinter’s events
  2. Một người xử lý sự kiện mà tên của chức năng được gọi bất cứ khi nào sự kiện xảy raevent handler that’s the name of the function to be called whenever the event occurs

Trình xử lý sự kiện bị ràng buộc với tiện ích mà

label = tk.Label(text="Hello, Tkinter")
08 được gọi. Khi trình xử lý sự kiện được gọi, đối tượng sự kiện được chuyển đến chức năng xử lý sự kiện.

Trong ví dụ trên, trình xử lý sự kiện bị ràng buộc với chính cửa sổ, nhưng bạn có thể liên kết một trình xử lý sự kiện với bất kỳ tiện ích nào trong ứng dụng của bạn. Ví dụ: bạn có thể liên kết một trình xử lý sự kiện với tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
07 sẽ thực hiện một số hành động bất cứ khi nào nút được nhấn:

label = tk.Label(text="Hello, Tkinter")
5

Trong ví dụ này, sự kiện

label = tk.Label(text="Hello, Tkinter")
21 trên tiện ích
label = tk.Label(text="Hello, Tkinter")
22 được liên kết với trình xử lý sự kiện
label = tk.Label(text="Hello, Tkinter")
23. Sự kiện
label = tk.Label(text="Hello, Tkinter")
21 xảy ra bất cứ khi nào nút chuột bên trái được nhấn trong khi chuột vượt qua tiện ích. Có các sự kiện khác cho các nhấp chuột nút chuột, bao gồm
label = tk.Label(text="Hello, Tkinter")
25 cho nút chuột giữa và
label = tk.Label(text="Hello, Tkinter")
26 cho nút chuột phải.

Bạn có thể liên kết bất kỳ trình xử lý sự kiện nào với bất kỳ loại tiện ích nào với

label = tk.Label(text="Hello, Tkinter")
08, nhưng có một cách đơn giản hơn để liên kết các trình xử lý sự kiện với các nhấp chuột bằng cách sử dụng thuộc tính ____107 Widget ____ ____629.

Sử dụng label = tk.Label(text="Hello, Tkinter") 29

Mỗi tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
07 có thuộc tính
label = tk.Label(text="Hello, Tkinter")
29 mà bạn có thể gán cho một hàm. Bất cứ khi nào nút được nhấn, chức năng được thực thi.

Hãy xem một ví dụ. Đầu tiên, bạn sẽ tạo một cửa sổ với tiện ích

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 chứa giá trị số. Bạn sẽ đặt các nút ở phía bên trái và bên phải của nhãn. Nút bên trái sẽ được sử dụng để giảm giá trị trong
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 và giá trị bên phải sẽ tăng giá trị. Đây là mã cho cửa sổ:

label = tk.Label(text="Hello, Tkinter")
6

Cửa sổ trông như thế này:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Với bố cục ứng dụng được xác định, bạn có thể đưa nó vào cuộc sống bằng cách đưa ra các nút một số lệnh. Bắt đầu với nút bên trái. Khi nhấn nút này, nó sẽ giảm giá trị trong nhãn. Để làm điều này, trước tiên bạn cần nhận được câu trả lời cho hai câu hỏi:

  1. Làm thế nào để bạn có được văn bản trong
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8?
  2. Làm thế nào để bạn cập nhật văn bản trong
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8?

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8 Các tiện ích don lồng có
>>> greeting = tk.Label(text="Hello, Tkinter")
60 như
>>> greeting = tk.Label(text="Hello, Tkinter")
08 và
>>> greeting = tk.Label(text="Hello, Tkinter")
09 Các tiện ích làm. Tuy nhiên, bạn có thể lấy văn bản từ nhãn bằng cách truy cập thuộc tính
>>> greeting = tk.Label(text="Hello, Tkinter")
24 với ký hiệu đăng ký theo kiểu từ điển:

label = tk.Label(text="Hello, Tkinter")
7

Bây giờ bạn đã biết cách nhận và đặt văn bản nhãn, hãy viết hàm

label = tk.Label(text="Hello, Tkinter")
42 làm tăng giá trị trong
label = tk.Label(text="Hello, Tkinter")
43 bằng một:

label = tk.Label(text="Hello, Tkinter")
8

label = tk.Label(text="Hello, Tkinter")
42 Nhận văn bản từ
label = tk.Label(text="Hello, Tkinter")
43 và chuyển đổi nó thành một số nguyên với
label = tk.Label(text="Hello, Tkinter")
46. Sau đó, nó tăng giá trị này lên một và đặt thuộc tính nhãn
>>> greeting = tk.Label(text="Hello, Tkinter")
24 cho giá trị mới này.

Bạn cũng sẽ cần

label = tk.Label(text="Hello, Tkinter")
48 để giảm giá trị trong
label = tk.Label(text="Hello, Tkinter")
49 bởi một:

label = tk.Label(text="Hello, Tkinter")
9

Đặt

label = tk.Label(text="Hello, Tkinter")
42 và
label = tk.Label(text="Hello, Tkinter")
48 vào mã của bạn ngay sau câu lệnh
label = tk.Label(text="Hello, Tkinter")
52.

Để kết nối các nút với các chức năng, hãy gán chức năng cho thuộc tính nút ____ ____629. Bạn có thể làm điều này khi bạn khởi tạo các nút. Ví dụ: cập nhật hai dòng khởi tạo các nút thành các nút sau:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
0

Đó là tất cả những gì bạn cần làm để liên kết các nút với

label = tk.Label(text="Hello, Tkinter")
42 và
label = tk.Label(text="Hello, Tkinter")
48 và làm cho chương trình hoạt động. Hãy thử lưu các thay đổi của bạn và chạy ứng dụng! Nhấp vào các nút để tăng và giảm giá trị ở giữa cửa sổ:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Tại đây, mã ứng dụng đầy đủ cho tài liệu tham khảo của bạn:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
1

Ứng dụng này không đặc biệt hữu ích, nhưng các kỹ năng bạn đã học ở đây áp dụng cho mọi ứng dụng mà bạn sẽ thực hiện:

  • Sử dụng các tiện ích để tạo các thành phần của giao diện người dùng.widgets to create the components of the user interface.
  • Sử dụng các trình quản lý hình học để kiểm soát bố cục của ứng dụng.geometry managers to control the layout of the application.
  • Viết trình xử lý sự kiện tương tác với các thành phần khác nhau để nắm bắt và chuyển đổi đầu vào của người dùng.event handlers that interact with various components to capture and transform user input.

Trong hai phần tiếp theo, bạn sẽ xây dựng các ứng dụng hữu ích hơn. Đầu tiên, bạn sẽ xây dựng một bộ chuyển đổi nhiệt độ chuyển đổi giá trị nhiệt độ từ Fahrenheit sang Celsius. Sau đó, bạn sẽ xây dựng một trình soạn thảo văn bản có thể mở, chỉnh sửa và lưu các tệp văn bản!

Kiểm tra việc hiểu của bạn

Mở rộng khối mã bên dưới cho một bài tập để kiểm tra sự hiểu biết của bạn:

Viết một chương trình mô phỏng lăn một cái chết sáu mặt. Cần có một nút với văn bản

label = tk.Label(text="Hello, Tkinter")
56. Khi người dùng nhấp vào nút, sẽ được hiển thị số nguyên ngẫu nhiên từ
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29 đến
label = tk.Label(text="Hello, Tkinter")
58.

Cửa sổ ứng dụng sẽ trông giống như thế này:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Hãy thử bài tập này ngay bây giờ.

Bạn có thể mở rộng khối mã bên dưới để xem giải pháp:

Ở đây, một giải pháp khả thi:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
2

Hãy nhớ rằng mã của bạn có thể trông khác nhau.

Khi bạn đã sẵn sàng, bạn có thể chuyển sang phần tiếp theo.

Xây dựng bộ chuyển đổi nhiệt độ (ứng dụng ví dụ)

Trong phần này, bạn sẽ xây dựng một ứng dụng chuyển đổi nhiệt độ cho phép người dùng nhập nhiệt độ tính bằng độ Fahrenheit và nhấn nút để chuyển đổi nhiệt độ đó thành độ C. Bạn sẽ đi qua mã từng bước. Bạn cũng có thể tìm thấy mã nguồn đầy đủ ở cuối phần này để tham khảo.temperature converter application that allows the user to input temperature in degrees Fahrenheit and push a button to convert that temperature to degrees Celsius. You’ll walk through the code step by step. You can also find the full source code at the end of this section for your reference.

Trước khi bạn bắt đầu mã hóa, trước tiên bạn sẽ thiết kế ứng dụng. Bạn cần ba yếu tố:

  1. >>> greeting = tk.Label(text="Hello, Tkinter")
    
    08: Một tiện ích được gọi là
    label = tk.Label(text="Hello, Tkinter")
    
    60 để nhập giá trị Fahrenheit
    A widget called
    label = tk.Label(text="Hello, Tkinter")
    
    60 for entering the Fahrenheit value
  2. label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8: Một tiện ích được gọi là
    label = tk.Label(text="Hello, Tkinter")
    
    62 để hiển thị kết quả Celsius
    A widget called
    label = tk.Label(text="Hello, Tkinter")
    
    62 to display the Celsius result
  3. >>> greeting = tk.Label(text="Hello, Tkinter")
    
    07: Một tiện ích được gọi là
    label = tk.Label(text="Hello, Tkinter")
    
    64 đọc giá trị từ tiện ích
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    08, chuyển đổi nó từ Fahrenheit sang Celsius và đặt văn bản của tiện ích
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8 thành kết quả khi nhấp vào
    A widget called
    label = tk.Label(text="Hello, Tkinter")
    
    64 that reads the value from the
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    08 widget, converts it from Fahrenheit to Celsius, and sets the text of the
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8 widget to the result when clicked

Bạn có thể sắp xếp chúng trong một lưới với một hàng duy nhất và một cột cho mỗi tiện ích. Điều đó giúp bạn có một ứng dụng làm việc tối thiểu, nhưng nó rất thân thiện với người dùng. Mọi thứ cần phải có nhãn.labels.

Bạn sẽ đặt một nhãn trực tiếp ở bên phải của tiện ích

label = tk.Label(text="Hello, Tkinter")
60 chứa ký hiệu Fahrenheit (℉) để người dùng biết rằng giá trị
label = tk.Label(text="Hello, Tkinter")
60 phải ở độ fahrenheit. Để thực hiện việc này, hãy đặt văn bản nhãn thành
label = tk.Label(text="Hello, Tkinter")
69, sử dụng hỗ trợ ký tự Unicode có tên Python, để hiển thị biểu tượng Fahrenheit.

Bạn có thể cung cấp cho

label = tk.Label(text="Hello, Tkinter")
64 một chút tinh tế bằng cách đặt văn bản của nó thành giá trị
label = tk.Label(text="Hello, Tkinter")
71, hiển thị một mũi tên màu đen chỉ sang phải. Bạn cũng sẽ đảm bảo rằng
label = tk.Label(text="Hello, Tkinter")
62 luôn có ký hiệu Celsius (℃) theo văn bản nhãn
label = tk.Label(text="Hello, Tkinter")
73 để chỉ ra rằng kết quả là ở độ C. Ở đây, những gì cửa sổ cuối cùng sẽ trông như thế nào:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Bây giờ bạn đã biết những vật dụng bạn cần gì và cửa sổ sẽ trông như thế nào, bạn có thể bắt đầu mã hóa nó! Đầu tiên, nhập

>>> greeting = tk.Label(text="Hello, Tkinter")
11 và tạo một cửa sổ mới:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
3

label = tk.Label(text="Hello, Tkinter")
75 Đặt tiêu đề của một cửa sổ hiện có, trong khi
label = tk.Label(text="Hello, Tkinter")
76 với cả hai đối số được đặt thành
label = tk.Label(text="Hello, Tkinter")
77 làm cho cửa sổ có kích thước cố định. Khi bạn cuối cùng chạy ứng dụng này, cửa sổ sẽ có bộ chuyển đổi nhiệt độ văn bản trong thanh tiêu đề của nó. Tiếp theo, hãy tạo tiện ích
label = tk.Label(text="Hello, Tkinter")
60 với nhãn có tên
label = tk.Label(text="Hello, Tkinter")
79 và gán cả hai cho tiện ích
>>> greeting = tk.Label(text="Hello, Tkinter")
10 có tên
label = tk.Label(text="Hello, Tkinter")
81:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
4

Người dùng sẽ nhập giá trị Fahrenheit trong

label = tk.Label(text="Hello, Tkinter")
60 và
label = tk.Label(text="Hello, Tkinter")
79 được sử dụng để dán nhãn
label = tk.Label(text="Hello, Tkinter")
60 với biểu tượng Fahrenheit. Các nhóm container
label = tk.Label(text="Hello, Tkinter")
81
label = tk.Label(text="Hello, Tkinter")
60 và
label = tk.Label(text="Hello, Tkinter")
79 cùng nhau.

Bạn muốn

label = tk.Label(text="Hello, Tkinter")
79 được đặt trực tiếp ở bên phải
label = tk.Label(text="Hello, Tkinter")
60. Bạn có thể đặt chúng ra trong
label = tk.Label(text="Hello, Tkinter")
81 bằng Trình quản lý hình học
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 với một hàng và hai cột:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
5

Bạn đã đặt tham số

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 thành
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
44 cho
label = tk.Label(text="Hello, Tkinter")
60 để nó luôn dính vào cạnh ngoài cùng bên phải của ô lưới. Bạn cũng đặt
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 thành
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
48 cho
label = tk.Label(text="Hello, Tkinter")
79 để giữ cho nó bị mắc kẹt ở cạnh ngoài cùng bên trái của ô lưới của nó. Điều này đảm bảo rằng
label = tk.Label(text="Hello, Tkinter")
79 luôn nằm ngay bên phải
label = tk.Label(text="Hello, Tkinter")
60.

Bây giờ, hãy thực hiện

label = tk.Label(text="Hello, Tkinter")
64 và
label = tk.Label(text="Hello, Tkinter")
62 để chuyển đổi nhiệt độ được nhập vào
label = tk.Label(text="Hello, Tkinter")
60 và hiển thị kết quả:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
6

Giống như

label = tk.Label(text="Hello, Tkinter")
81, cả
label = tk.Label(text="Hello, Tkinter")
64 và
label = tk.Label(text="Hello, Tkinter")
62 đều được gán cho
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6. Cùng với nhau, ba vật dụng này tạo nên ba ô trong lưới ứng dụng chính. Sử dụng
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 để tiếp tục và đặt chúng ngay bây giờ:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
7

Cuối cùng, chạy ứng dụng:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
8

Rằng sẽ rất tốt! Nhưng nút không làm gì cả. Ở đầu tệp tập lệnh của bạn, ngay dưới dòng

label = tk.Label(text="Hello, Tkinter")
52, thêm một hàm gọi là
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
09:

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
9

Hàm này đọc giá trị từ

label = tk.Label(text="Hello, Tkinter")
60, chuyển đổi nó từ Fahrenheit sang Celsius, và sau đó hiển thị kết quả trong
label = tk.Label(text="Hello, Tkinter")
62.

Bây giờ đi xuống dòng nơi bạn xác định

label = tk.Label(text="Hello, Tkinter")
64 và đặt tham số
label = tk.Label(text="Hello, Tkinter")
29 của nó thành
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
14:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
0

Đó là nó! Bạn đã tạo ra một ứng dụng chuyển đổi nhiệt độ đầy đủ chức năng chỉ bằng hai mươi sáu dòng mã! Khá tuyệt, phải không?

Bạn có thể mở rộng khối mã bên dưới để xem tập lệnh đầy đủ:

Tại đây, tập lệnh đầy đủ cho tài liệu tham khảo của bạn:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
1

Nó thời gian để đá mọi thứ lên một tầm cao! Đọc để tìm hiểu cách xây dựng một trình soạn thảo văn bản.

Xây dựng một trình soạn thảo văn bản (ứng dụng ví dụ)

Trong phần này, bạn sẽ xây dựng một ứng dụng trình soạn thảo văn bản có thể tạo, mở, chỉnh sửa và lưu các tệp văn bản. Có ba yếu tố thiết yếu trong ứng dụng:text editor application that can create, open, edit, and save text files. There are three essential elements in the application:

  1. Tiện ích
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    07 có tên
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    16 để mở tệp để chỉnh sửa
  2. Tiện ích
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    07 được gọi là
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    18 để lưu tệp
  3. Tiện ích
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    19 được gọi là
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    20 để tạo và chỉnh sửa tệp văn bản

Ba tiện ích sẽ được sắp xếp sao cho hai nút ở phía bên trái của cửa sổ và hộp văn bản nằm ở phía bên phải. Toàn bộ cửa sổ phải có chiều cao tối thiểu là 800 pixel và

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 nên có chiều rộng tối thiểu là 800 pixel. Toàn bộ bố cục phải đáp ứng để nếu cửa sổ được thay đổi kích thước, thì
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 cũng được thay đổi kích thước. Tuy nhiên, chiều rộng của khung giữ các nút không nên thay đổi.

Ở đây, một bản phác thảo về cách nhìn của cửa sổ:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Bạn có thể đạt được bố cục mong muốn bằng Trình quản lý hình học

>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86. Bố cục chứa một hàng duy nhất và hai cột:

  1. Một cột hẹp bên trái cho các nút on the left for the buttons
  2. Một cột rộng hơn ở bên phải cho hộp văn bản on the right for the text box

Để đặt kích thước tối thiểu cho cửa sổ và

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20, bạn có thể đặt các tham số
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
20 của các phương thức cửa sổ
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
12 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
11 thành
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
28. Để xử lý thay đổi kích thước, bạn có thể đặt các tham số
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
19 của các phương thức này thành
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29.

Để đưa cả hai nút vào cùng một cột, bạn sẽ cần tạo tiện ích

>>> greeting = tk.Label(text="Hello, Tkinter")
10 được gọi là
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32. Theo bản phác thảo, hai nút phải được xếp chồng lên nhau theo chiều dọc của khung này, với
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 ở trên. Bạn có thể làm điều đó với Trình quản lý hình học
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 hoặc
>>> greeting = tk.Label(text="Hello, Tkinter")
03. Hiện tại, bạn sẽ gắn bó với
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86 vì nó dễ làm việc hơn một chút.

Bây giờ bạn có một kế hoạch, bạn có thể bắt đầu mã hóa ứng dụng. Bước đầu tiên là tạo tất cả các tiện ích bạn cần:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
2

Ở đây, một sự cố của mã này:

  • Dòng 1 Nhập khẩu
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    11.
    imports
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    11.
  • Dòng 3 và 4 Tạo một cửa sổ mới với tiêu đề
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    38.
    create a new window with the title
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    38.
  • Dòng 6 và 7 Đặt cấu hình hàng và cột. set the row and column configurations.
  • Các dòng 9 đến 12 Tạo bốn tiện ích mà bạn sẽ cần cho hộp văn bản, khung và các nút mở và lưu. create the four widgets you’ll need for the text box, the frame, and the open and save buttons.

Hãy nhìn vào dòng 6 chặt chẽ hơn. Tham số

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
20 của
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
12 được đặt thành
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
28 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
19 được đặt thành
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
3

Đối số đầu tiên là

>>> greeting = tk.Label(text="Hello, Tkinter")
42, đặt chiều cao của hàng đầu tiên thành
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
28 pixel và đảm bảo rằng chiều cao của hàng tăng theo chiều cao của cửa sổ. Có chỉ một hàng trong bố cục ứng dụng, vì vậy các cài đặt này áp dụng cho toàn bộ cửa sổ.

Chúng ta cũng hãy xem xét kỹ hơn dòng 7. Tại đây, bạn sử dụng

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
11 để đặt các thuộc tính
>>> greeting = tk.Label(text="Hello, Tkinter")
39 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
19 của cột với chỉ mục
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29 thành
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
28 và
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
29, tương ứng::

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
4

Hãy nhớ rằng, các chỉ số hàng và cột là dựa trên 0, vì vậy các cài đặt này chỉ áp dụng cho cột thứ hai. Bằng cách định cấu hình cột thứ hai, hộp văn bản sẽ mở rộng và co lại một cách tự nhiên khi cửa sổ được thay đổi kích thước, trong khi cột chứa các nút sẽ vẫn ở độ rộng cố định.

Bây giờ bạn có thể làm việc trên bố cục ứng dụng. Đầu tiên, gán hai nút cho khung

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32 bằng Trình quản lý hình học
>>> import tkinter as tk
>>> import tkinter.ttk as ttk
86:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
5

Hai dòng mã này tạo ra một lưới với hai hàng và một cột trong khung

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32 vì cả
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 và
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18 có thuộc tính
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
94 của chúng được đặt thành
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32.
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 được đặt vào hàng đầu tiên và
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18 ở hàng thứ hai để
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 xuất hiện ở trên
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18 trong bố cục, chỉ bạn đã lên kế hoạch trong bản phác thảo của mình.create a grid with two rows and one column in the
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32 frame since both
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 and
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18 have their
import tkinter as tk

window = tk.Tk()
label = tk.Label(text="Python rocks!")
label.pack()

window.mainloop()
94 attribute set to
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32.
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 is put in the first row and
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18 in the second row so that
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 appears above
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18 in the layout, just you planned in your sketch.

Cả

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 và
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18 đều có các thuộc tính
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 được đặt thành
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
64, buộc các nút phải mở rộng theo chiều ngang theo cả hai hướng và lấp đầy toàn bộ khung. Điều này đảm bảo rằng cả hai nút đều có cùng kích thước.expand horizontally in both directions and fill the entire frame. This ensures that both buttons are the same size.

Bạn đặt năm pixel đệm xung quanh mỗi nút bằng cách đặt các tham số

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
00 và
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
01 thành
>>> greeting = tk.Label(text="Hello, Tkinter")
51. Chỉ
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 có đệm thẳng đứng. Vì nó ở trên đầu, phần đệm thẳng đứng bù đắp nút xuống từ đỉnh cửa sổ một chút và đảm bảo rằng có một khoảng cách nhỏ giữa nó và
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18.padding around each button by setting the
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
00 and
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
01 parameters to
>>> greeting = tk.Label(text="Hello, Tkinter")
51. Only
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 has vertical padding. Since it’s on top, the vertical padding offsets the button down from the top of the window a bit and makes sure that there’s a small gap between it and
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18.

Bây giờ

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32 đã được đặt ra và sẵn sàng để đi, bạn có thể thiết lập bố cục lưới cho phần còn lại của cửa sổ:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
6

Hai dòng mã này tạo ra một lưới với một hàng và hai cột cho

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6. Bạn đặt
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32 vào cột đầu tiên và
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 trong cột thứ hai để
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32 xuất hiện ở bên trái của
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 trong bố cục cửa sổ.create a grid with one row and two columns for
label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
6. You place
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32 in the first column and
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 in the second column so that
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32 appears to the left of
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 in the window layout.

Tham số

>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 cho
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
32 được đặt thành
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
63, buộc toàn bộ khung phải mở rộng theo chiều dọc và lấp đầy toàn bộ chiều cao của cột.
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 lấp đầy toàn bộ ô lưới của nó vì bạn đặt tham số
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 của nó thành
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
66, buộc nó phải mở rộng theo mọi hướng.expand vertically and fill the entire height of its column.
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 fills its entire grid cell because you set its
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
41 parameter to
>>> from tkinter import *
>>> from tkinter.ttk import *

>>> Label()
<tkinter.ttk.Label object .!label>

>>> Text()
<tkinter.Text object .!text>
66, which forces it to expand in every direction.

Bây giờ bố cục ứng dụng đã hoàn tất, thêm

>>> greeting = tk.Label(text="Hello, Tkinter")
04 vào cuối chương trình và lưu và chạy tệp:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
7

Cửa sổ sau được hiển thị:

Hướng dẫn what is tkinter in python with example? - tkinter trong python với ví dụ là gì?

Rằng sẽ rất tốt! Nhưng nó không làm gì cả, vì vậy bạn cần bắt đầu viết các lệnh cho các nút.

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 Cần hiển thị hộp thoại Mở tệp và cho phép người dùng chọn tệp. Sau đó, nó cần mở tệp đó và đặt văn bản của
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 thành nội dung của tệp. Ở đây, một chức năng
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
87 chỉ có điều này:file open dialog and allow the user to select a file. It then needs to open that file and set the text of
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 to the contents of the file. Here’s an
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
87 function that does just this:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
8

Ở đây, một sự cố của chức năng này:

  • Các dòng 5 đến 7 Sử dụng hộp thoại
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    88 từ mô -đun
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    89 để hiển thị hộp thoại Mở tệp và lưu trữ đường dẫn tệp đã chọn đến
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    90.
    use the
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    88 dialog from the
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    89 module to display a file open dialog and store the selected file path to
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    90.
  • Dòng 8 và 9 Kiểm tra xem người dùng có đóng hộp thoại hay nhấp vào nút Hủy không. Nếu vậy,
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    90 sẽ là
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    92 và hàm sẽ
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    93 mà không cần thực thi bất kỳ mã nào để đọc tệp và đặt văn bản của
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    20.
    check to see if the user closes the dialog box or clicks the Cancel button. If so, then
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    90 will be
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    92, and the function will
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    93 without executing any of the code to read the file and set the text of
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    20.
  • Dòng 10 Xóa nội dung hiện tại của
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    20 bằng
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    61.
    clears the current contents of
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    20 using
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    61.
  • Các dòng 11 và 12 Mở tệp đã chọn và
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    97 Nội dung của nó trước khi lưu trữ
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    24 dưới dạng chuỗi.
    open the selected file and
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    97 its contents before storing the
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    24 as a string.
  • Dòng 13 gán chuỗi
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    24 cho
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    20 bằng
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    62.
    assigns the string
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    24 to
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    20 using
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    62.
  • Dòng 14 đặt tiêu đề của cửa sổ để nó chứa đường dẫn của tệp mở. sets the title of the window so that it contains the path of the open file.

Bây giờ bạn có thể cập nhật chương trình để

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 gọi
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
87 bất cứ khi nào nó nhấp vào. Có một vài điều bạn cần làm để cập nhật chương trình. Đầu tiên, nhập
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
88 từ
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
89 bằng cách thêm nhập sau vào đầu chương trình của bạn:

label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
9

Tiếp theo, đặt thuộc tính

label = tk.Label(text="Hello, Tkinter")
29 của
label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
07 thành
label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
08:

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
0

Lưu tệp và chạy nó để kiểm tra xem mọi thứ đang hoạt động. Sau đó, thử mở một tệp văn bản!

Với

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
16 làm việc, đã đến lúc làm việc trên chức năng cho
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18. Điều này cần mở hộp thoại Lưu tệp để người dùng có thể chọn nơi họ muốn lưu tệp. Bạn sẽ sử dụng hộp thoại
label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
11 trong mô -đun
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
89 cho việc này. Chức năng này cũng cần trích xuất văn bản hiện tại trong
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 và ghi nó vào một tệp tại vị trí đã chọn. Ở đây, một chức năng làm điều này:save file dialog box so that the user can choose where they would like to save the file. You’ll use the
label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
11 dialog in the
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
89 module for this. This function also needs to extract the text currently in
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
20 and write this to a file at the selected location. Here’s a function that does just this:

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
1

Ở đây, cách thức hoạt động của mã này:

  • Các dòng 19 đến 22 Sử dụng hộp thoại
    label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
    
    11 để có được vị trí lưu mong muốn từ người dùng. Đường dẫn tệp đã chọn được lưu trữ trong biến
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    90.
    use the
    label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
    
    11 dialog box to get the desired save location from the user. The selected file path is stored in the
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    90 variable.
  • Dòng 23 và 24 Kiểm tra xem người dùng có đóng hộp thoại hay nhấp vào nút Hủy không. Nếu vậy,
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    90 sẽ là
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    92 và chức năng sẽ trả về mà không thực thi bất kỳ mã nào để lưu văn bản vào một tệp.
    check to see if the user closes the dialog box or clicks the Cancel button. If so, then
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    90 will be
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    92, and the function will return without executing any of the code to save the text to a file.
  • Dòng 25 tạo một tệp mới tại đường dẫn tệp đã chọn. creates a new file at the selected file path.
  • Dòng 26 trích xuất văn bản từ
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    20 với phương thức
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    60 và gán nó cho biến
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    24.
    extracts the text from
    label = tk.Label(
        text="Hello, Tkinter",
        foreground="white",  # Set the text color to white
        background="black"  # Set the background color to black
    )
    
    20 with
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    60 method and assigns it to the variable
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    24.
  • Dòng 27 ghi
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    24 vào tệp đầu ra.
    writes
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    24 to the output file.
  • Dòng 28 Cập nhật tiêu đề của cửa sổ để đường dẫn tệp mới được hiển thị trong tiêu đề cửa sổ. updates the title of the window so that the new file path is displayed in the window title.

Bây giờ bạn có thể cập nhật chương trình để

label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18 gọi
label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
23 khi nó nhấp chuột. Một lần nữa, có một vài điều bạn cần làm để cập nhật chương trình. Đầu tiên, nhập
label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
11 từ
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
89 bằng cách cập nhật nhập khẩu ở đầu tập lệnh của bạn, như vậy:

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
2

Cuối cùng, đặt thuộc tính

label = tk.Label(text="Hello, Tkinter")
29 của
label = tk.Label(
    text="Hello, Tkinter",
    foreground="white",  # Set the text color to white
    background="black"  # Set the background color to black
)
18 thành
label = tk.Label(text="Hello, Tkinter", background="#34A2FE")
28:

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
3

Lưu tệp và chạy nó. Bây giờ bạn đã có một trình soạn thảo văn bản tối thiểu nhưng đầy đủ chức năng!

Bạn có thể mở rộng khối mã bên dưới để xem tập lệnh đầy đủ:

Tại đây, tập lệnh đầy đủ cho tài liệu tham khảo của bạn:

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
4

Bây giờ bạn đã xây dựng hai ứng dụng GUI bằng Python và áp dụng nhiều kỹ năng mà bạn đã học được trong suốt hướng dẫn này. Đó là thành tích không nhỏ, vì vậy hãy dành một chút thời gian để cảm thấy tốt về những gì bạn đã làm. Bây giờ bạn đã sẵn sàng để tự mình giải quyết một số ứng dụng!

Sự kết luận

Trong hướng dẫn này, bạn đã học được cách bắt đầu với chương trình GUI Python. Tkinter là một lựa chọn hấp dẫn cho khung GUI Python vì nó được tích hợp vào thư viện tiêu chuẩn Python, và nó tương đối không đau khi làm cho các ứng dụng với khung này.Tkinter is a compelling choice for a Python GUI framework because it’s built into the Python standard library, and it’s relatively painless to make applications with this framework.

Trong suốt hướng dẫn này, bạn đã học được một số khái niệm Tkinter quan trọng:

  • Cách làm việc với các widgetwidgets
  • Cách kiểm soát bố cục ứng dụng của bạn với Trình quản lý hình họcgeometry managers
  • Cách làm cho các ứng dụng của bạn tương tácinteractive
  • Cách sử dụng năm vật dụng Tkinter cơ bản:
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8,
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    07,
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    08,
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    09 và
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    10widgets:
    label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
    
    8,
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    07,
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    08,
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    09, and
    >>> greeting = tk.Label(text="Hello, Tkinter")
    
    10

Bây giờ bạn đã thành thạo các nền tảng của lập trình GUI Python với Tkinter, bước tiếp theo là xây dựng một số ứng dụng của riêng bạn. Bạn sẽ tạo ra những gì? Chia sẻ các dự án thú vị của bạn trong các ý kiến ​​dưới đây!

Tài nguyên bổ sung

Trong hướng dẫn này, bạn đã chạm vào các nền tảng tạo ra các ứng dụng GUI Python với Tkinter. Có một số chủ đề bổ sung mà aren được đề cập ở đây. Trong phần này, bạn sẽ tìm thấy một số tài nguyên tốt nhất có sẵn để giúp bạn tiếp tục hành trình.

Tài liệu tham khảo Tkinter

Dưới đây là một số tài nguyên chính thức để kiểm tra:

  • Tài liệu tham khảo Python Tkinter chính thức bao gồm mô -đun Python từ Tkinter ở độ sâu vừa phải. Nó được viết cho các nhà phát triển Python tiên tiến hơn và là nguồn tài nguyên tốt nhất cho người mới bắt đầu.
  • Tkinter 8.5 Tham khảo: GUI cho Python là một tài liệu tham khảo rộng rãi bao gồm phần lớn mô -đun Tkinter. Nó rất đầy đủ, nhưng nó được viết theo phong cách tham khảo mà không cần bình luận hay ví dụ.
  • Tham chiếu lệnh TK là hướng dẫn dứt khoát cho các lệnh trong thư viện TK. Nó viết cho ngôn ngữ TCL, nhưng nó trả lời rất nhiều câu hỏi về lý do tại sao mọi thứ hoạt động theo cách họ làm trong Tkinter.

Các vật dụng bổ sung

Trong hướng dẫn này, bạn đã tìm hiểu về

label = tk.Label(text="Hello, Tkinter", fg="white", bg="black")
8,
>>> greeting = tk.Label(text="Hello, Tkinter")
07,
>>> greeting = tk.Label(text="Hello, Tkinter")
08,
>>> greeting = tk.Label(text="Hello, Tkinter")
09 và
>>> greeting = tk.Label(text="Hello, Tkinter")
10. Có một số vật dụng khác trong Tkinter, tất cả đều rất cần thiết để xây dựng các ứng dụng trong thế giới thực. Dưới đây là một số tài nguyên để tiếp tục tìm hiểu về các vật dụng:

  • Hướng dẫn TKDOCS Tkinter là một hướng dẫn khá toàn diện cho TK, thư viện mã cơ bản được sử dụng bởi Tkinter. Các ví dụ được trình bày trong Python, Ruby, Perl và TCL. Bạn có thể tìm thấy một số ví dụ về các vật dụng vượt ra ngoài những vật dụng được đề cập ở đây trong hai phần:
    • Các widget cơ bản bao gồm các vật dụng giống như hướng dẫn này, cộng với một vài tiện ích nữa.
    • Nhiều widget hơn bao gồm một số widget bổ sung.
  • Các tài liệu Python chính thức bao gồm các widget bổ sung:
    • Các tiện ích theo chủ đề TTK bao gồm bộ tiện ích theo chủ đề TK.
    • Tiện ích văn bản cuộn chi tiết tiện ích
      >>> greeting = tk.Label(text="Hello, Tkinter")
      
      09 kết hợp với thanh cuộn dọc.

Phân phối ứng dụng

Khi bạn đã tạo một ứng dụng với Tkinter, có lẽ bạn muốn phân phối nó cho đồng nghiệp và bạn bè của bạn. Dưới đây là một số hướng dẫn để giúp bạn thực hiện quá trình đó:

  • Sử dụng pyinstaller để dễ dàng phân phối các ứng dụng Python
  • 4 nỗ lực đóng gói Python như một thực thi
  • Xây dựng các ứng dụng Python độc lập với Pyoxidizer

Khung GUI khác

Tkinter là sự lựa chọn duy nhất của bạn cho một khung GUI Python. Nếu Tkinter không đáp ứng nhu cầu của dự án của bạn, thì đây là một số khung khác để xem xét:

  • Cách xây dựng một ứng dụng GUI Python với WxPython
  • Python và Pyqt: Xây dựng máy tính máy tính để bàn GUI
  • Xây dựng một ứng dụng di động với khung Kivy Python
  • Pysimplegui: Cách đơn giản để tạo GUI với Python

Tkinter trong Python giải thích là gì?

Tkinter là thư viện GUI tiêu chuẩn cho Python.Python khi kết hợp với Tkinter cung cấp một cách nhanh chóng và dễ dàng để tạo các ứng dụng GUI.Tkinter cung cấp một giao diện hướng đối tượng mạnh mẽ cho bộ công cụ GUI TK.Tạo một ứng dụng GUI sử dụng Tkinter là một nhiệm vụ dễ dàng.the standard GUI library for Python. Python when combined with Tkinter provides a fast and easy way to create GUI applications. Tkinter provides a powerful object-oriented interface to the Tk GUI toolkit. Creating a GUI application using Tkinter is an easy task.

Các ứng dụng khác nhau của Tkinter trong Python là gì?

Lập trình GUI Python với Tkinter..
Hiển thị văn bản và hình ảnh với các tiện ích nhãn ..
Hiển thị các nút có thể nhấp bằng các tiện ích nút ..
Nhận đầu vào của người dùng với các tiện ích nhập ..
Nhận đầu vào người dùng đa dòng với các tiện ích văn bản ..
Gán các widget cho khung với các tiện ích khung ..
Điều chỉnh sự xuất hiện của khung với các bức phù điêu ..