nhập matplotlib. pyplot dưới dạng plt
x = np. mảng[[80, 82, 90, 95, 100, 103, 110, 115, 120, 125]]
y = n p. mảng[[240, 250, 264, 270, 280, 290, 294, 310, 320, 330]]
plt. tiêu đề ["Biểu đồ sức khỏe"]
plt. xlabel["Người bình thường"]
plt. ylabel["Tiêu thụ calo"]
plt. grid[color = 'vàng', linestyle = '--', linewidth = 1. 5]
Thư viện Tkinter của Python có một số công cụ để quản lý kích thước của các widget trong các ứng dụng dựa trên GUI. Những công cụ này được gọi là trình quản lý hình học. Trình quản lý lưới là một trong những công cụ này. Nó có nhiều tính linh hoạt và tùy biến hơn so với thường được sử dụng. trình quản lý pack[]. Chúng ta sẽ học cách sử dụng. trình quản lý hình học grid[] trong hướng dẫn lập trình Python hôm nay
Đọc. Cách tạo ứng dụng GUI Python đầu tiên của bạn
Cách tạo lưới trong Tkinter và Python
Để tạo lưới, bạn cần sử dụng. phương thức lưới []. Phương pháp này có thể được sử dụng trên cả cửa sổ và khung
Phương thức grid[] cho phép bạn chỉ định vị trí hàng và cột trong danh sách tham số của nó. Cả hàng và cột bắt đầu từ chỉ số 0. Ví dụ lưới[hàng=1, cột=2] chỉ định một vị trí trên cột thứ ba và hàng thứ hai của khung hoặc cửa sổ của bạn
Ví dụ mã Python bên dưới cho thấy cách bạn có thể lấy hình ảnh lưới ở trên
import tkinter as tk window = tk.Tk[] window.title["Grid Manager"] for x in range[2]: for y in range[2]: frame = tk.Frame[ master=window, relief=tk.RAISED, borderwidth=1 ] frame.grid[row=x, column=y] # line 13 label = tk.Label[master=frame, text=f"\n\nrow {x}\t\t column {y}\n\n"] label.pack[] window.mainloop[]
Đọc. Cách tạo Widget văn bản trong Python với Tkinter
Cách thêm phần đệm vào lưới Tkinter
Bạn có thể nhận thấy rằng các khung trong ví dụ trước hơi quá gần nhau. Bạn có thể thêm một số khoảng trống giữa các khung này thông qua một phương pháp được gọi là phần đệm
Có hai loại đệm. bên ngoài và bên trong. Phần đệm bên ngoài cho phép bạn đặt khoảng trống ở giữa bên ngoài các vật dụng. Bạn có thể thực hiện nó bằng cách sử dụng hai biến padx và pady. Padx chèn không gian theo chiều ngang, trong khi pady chèn không gian theo chiều dọc. Hai giá trị này được đo bằng pixel
Ví dụ: trong ví dụ mã trước đó, bạn có thể tạo khoảng cách bằng nhau theo một trong hai hướng bằng mã bên dưới
frame.grid[row=x, column=y padx=10 pady=10] # line 13
Tự động thay đổi kích thước lưới Tkinter
Nếu bạn cố gắng điều chỉnh cửa sổ đã tạo trong ví dụ trước, bạn sẽ nhận thấy rằng lưới vẫn ở góc trên cùng bên trái và không phản hồi với việc thay đổi kích thước cửa sổ. Bạn có thể đảm bảo rằng lưới của bạn được tự động thay đổi kích thước với cửa sổ bằng cách sử dụng các phương thức columnconfigure[] và rowconfigure[]. Các phương pháp này áp dụng cho đối tượng cửa sổ
Phương thức columnconfigure[] thay đổi kích thước lưới theo chiều dọc, trong khi rowconfigure[] thay đổi kích thước lưới theo chiều ngang. Cả hai phương thức này đều có 3 đối số
- Chỉ mục hàng/cột
- thu nhỏ. Điều này xác định kích thước tối thiểu của widget. Điều này là cần thiết cho các mục đích dễ đọc, để thay đổi kích thước nhỏ nhất có thể vẫn có thể đọc được một cách hợp lý
- trọng lượng. Đây là thước đo tỷ lệ thay đổi kích thước của một cột hoặc hàng so với các cột hoặc hàng khác. Ví dụ: trọng số là 1 có nghĩa là một cột hoặc hàng thay đổi kích thước với cùng tốc độ với các cột hoặc hàng khác. Trọng số là 3 có nghĩa là một hàng hoặc cột thay đổi kích thước với tốc độ gấp ba lần so với các hàng hoặc cột khác. Theo mặc định, trường này được đặt thành 0, ngụ ý rằng một hàng hoặc cột không thay đổi kích thước khi cửa sổ thay đổi kích thước
Xem ví dụ mã bên dưới
import tkinter as tk window = tk.Tk[] window.title["Grid Manager"] for x in range[2]: window.columnconfigure[x, weight=1, minsize=100] window.rowconfigure[x, weight=1, minsize=75] for y in range[2]: frame = tk.Frame[ master=window, relief=tk.RAISED, borderwidth=1 ] frame.grid[row=x, column=y, padx=10, pady=10] # line 13 label = tk.Label[master=frame, text=f"row {x}\ncolumn {y}"] label.pack[] window.mainloop[]
Đọc. Các khóa học trực tuyến hàng đầu để học Python
Tóm tắt Trình quản lý lưới của Tkinter
Trình quản lý lưới Tkinter cho phép bạn định vị các vật dụng của mình. Hãy nhớ rằng trong trường hợp bạn muốn tạo khoảng cách cho các vật dụng của mình, trong trường hợp đó, bạn cần áp dụng phần đệm
Để thay đổi kích thước động của lưới Tkinter, các nhà phát triển Python cần sử dụng các phương thức columnconfigure[] và rowconfigure[]. Điều quan trọng cần nhớ là các phương thức này áp dụng cho đối tượng cửa sổ chứ không phải grid[]
Có thể tạo bố cục này bằng trình quản lý gói, nhưng phải mất một số tiện ích khung bổ sung và rất nhiều công việc để làm cho mọi thứ trông đẹp mắt. Thay vào đó, nếu bạn sử dụng trình quản lý lưới, bạn chỉ cần một cuộc gọi cho mỗi tiện ích để sắp xếp mọi thứ đúng cách. Sử dụng trình quản lý lưới thật dễ dàng. Chỉ cần tạo các tiện ích và sử dụng phương thức lưới để báo cho người quản lý biết hàng và cột nào sẽ đặt chúng. Bạn không cần phải chỉ định trước kích thước của lưới; .
Mã số 1.
Python3
# import tkinter module
from
tkinter
import
*
from
tkinter.ttk
import
*
frame.grid[row=x, column=y padx=10 pady=10] # line 132
from
0from
1 from
2
from
3
from
4from
1 from
6from
1 from
8
from
9from
1 from
6from
1 tkinter
3
tkinter
4
tkinter
5
tkinter
6from
1 tkinter
8tkinter
9from
1 tkinter
8import
2from
1 import
4from
1 import
6import
7
import
8from
1 *
0tkinter
9from
1 tkinter
8import
2from
1 import
4from
1 import
6import
7
from
0
from
1from
1 from
3
from
4from
1 from
3
from
7
from
8from
1 tkinter
8tkinter
9from
1 *
0tkinter.ttk
4from
1 import
6import
7
tkinter.ttk
8from
1 *
0tkinter
9from
1 *
0tkinter.ttk
4from
1 import
6import
7
import
8
import
9
*
0
đầu ra
Mã số 2. Tạo bố cục được hiển thị ở trên.
Python3
# import tkinter module
from
tkinter
import
*
from
tkinter.ttk
import
*
frame.grid[row=x, column=y padx=10 pady=10] # line 132
from
0from
1 from
2
from
3
from
4from
1 from
6from
1
frame.grid[row=x, column=y padx=10 pady=10] # line 1329
from
9from
1 from
6from
1 from
04
tkinter
4
tkinter
5
tkinter
6from
1 tkinter
8tkinter
9from
1 tkinter
8import
2from
1 import
4from
1 import
6import
7
import
8from
1 *
0tkinter
9from
1 tkinter
8import
2from
1 import
4from
1 import
6import
7
from
0
from
1from
1 from
3
from
4from
1 from
3
from
7
from
8from
1 tkinter
8tkinter
9from
1 *
0tkinter.ttk
4from
1 import
6import
7
tkinter.ttk
8from
1 *
0tkinter
9from
1 *
0tkinter.ttk
4from
1 import
6import
7
from
59
from
60from
1 from
62from
1 from
64
from
65from
1 import
6_______59from
1 tkinter
8import
2from
1 from
73from
1 import
6import
7
from
77
from
78from
1 from
80from
81 from
1 from
83
from
84______41 from
86import
6from
88import
6import
7
from
91
from
92_______41 from
94from
1 tkinter
8____59from
1 import
6from
88
tkinter
01tkinter
02from
1 import
6tkinter
05from
1 import
6tkinter
08from
1 tkinter
10tkinter.ttk
4from
1 tkinter
10import
7