Thanh tiến trình Tkinter

Thanh Tien Trinh Tkinter



Bạn có thể cập nhật cho khách hàng về trạng thái của một quá trình dài bằng tiện ích thanh tiến trình. Mục tiêu của tiện ích con là cung cấp cho người dùng niềm tin rằng điều gì đó đang xảy ra. Nó có hai chế độ hoạt động khác nhau. Khi ở chế độ xác định, tiện ích sẽ hiển thị một chỉ báo di chuyển theo hướng xác định trước. Tiện ích con được di chuyển ở trạng thái không xác định để cho phép khách hàng có ấn tượng rằng điều gì đó đang xảy ra. Tín hiệu dao động qua lại giữa các phần của tiện ích trong suốt phong cách này. Việc sử dụng các thanh tiến trình xác định và không xác định trong Python sẽ được đề cập trong hướng dẫn này.

Hãy bắt đầu với cấu hình của thư viện Tkinter của Python. Sau khi khởi chạy thành công thiết bị đầu cuối, hãy thử truy vấn sau để định cấu hình gói Tkinter. Đảm bảo đã cài đặt Python trước khi sử dụng hướng dẫn này.

$ sudo apt cài đặt python3-tk







ví dụ 1

Hãy bắt đầu với ví dụ đầu tiên của chúng tôi về Python để sử dụng mô-đun Tkinter để tạo thanh tiến trình xác định tại GUI của nó. Do đó, chúng tôi đã tạo một tệp Python mới có tên “new.py” và thêm đoạn mã sau. Chúng tôi bắt đầu mã này bằng cách nhập tất cả các đối tượng con từ thư viện Tkinter của Python ở dòng đầu tiên. Sau đó, chúng tôi nhập đối tượng lớp “ttk” từ mô-đun Tkinter trong dòng mã thứ hai.



Phương thức khởi tạo lớp Tk () đã được gọi và lưu đối tượng của nó trong biến “t”. Chức năng 'title' đã được sử dụng với biến đối tượng 't' để tạo tiêu đề cho GUI. Kích thước của cửa sổ GUI Tkinter đã được đặt thành “300 × 200” thông qua hàm hình học (). Thanh tiến trình sẽ được tạo bởi một hàm “Pbar ()” do người dùng xác định. Chúng ta sẽ xem xét chức năng này trong phần sau của bài viết này.



Chúng tôi đã tạo một biến 'p' ở 8 thứ tự dòng mã Python này đã được sử dụng hàm Progressbar () thông qua đối tượng lớp “ttk” để tạo thanh tiến trình trên màn hình GUI. Đối tượng “t” đã được chuyển đến nó trong khi hướng của nó được đặt thành Ngang, chiều dài của nó được đặt thành 400 và chế độ của nó là xác định, tức là nó sẽ chỉ di chuyển theo một hướng cụ thể. Phần đệm trục “y” đã được đặt thành 30 bằng cách sử dụng hàm “pack ()” cho thanh tiến trình này.





Sau đó, chúng tôi đã tạo một nút mới “b” bằng cách sử dụng hàm Button () và chuyển cho nó đối tượng “t”, một số văn bản và lệnh sẽ được thực thi sau khi nhấp vào nút, tức là hàm được gọi chức năng 'Pbar'. Hàm Pbar () sẽ tăng giá trị của thanh tiến trình “p” lên mười và trả về biến “b”. Phần đệm trục “y” cho nút đã được đặt thành “10” bằng cách sử dụng hàm pack () và hàm mainloop () ở đây để lặp lại toàn bộ quá trình thực thi.



Sau khi hoàn thành mã Python, chúng tôi đã lưu nó và thực thi nó trên bảng điều khiển thông qua truy vấn “python3” theo sau là tên của tệp “new.py”:

$ python3 new.py

Nó đã khởi chạy Tkinter GUI của Python với tiêu đề “Thanh tiến trình” trên màn hình bảng điều khiển của chúng tôi. Trong hình ảnh sau đây, chỉ có một thanh tiến trình không có xử lý. Bạn cần phải nhấn vào nút trước.

Sau khi nhấn vào nút “Nhấn vào đây!”, Thanh tiến trình màu xanh lam đã được hiển thị như sau:

Sau ba lần nhấp liên tiếp, chúng tôi nhận được tiến trình sau mà không có chuyển động:

Sau khi đến cuối thanh tiến trình, chúng tôi không thể di chuyển xa hơn, tức là xác định thanh tiến trình.

Ví dụ 2

Hãy xem cách tạo thanh tiến trình không xác định có thể di chuyển lùi và tiến trong vùng tiến trình bằng cách sử dụng mô-đun Tkinter GUI Python. Vì vậy, chúng tôi đã bắt đầu mã Python này bằng cách nhập mô-đun Tkinter dưới dạng 'tk' và đối tượng ttk từ lớp 'ttk'. Đối tượng tk đã được ép kiểu để nhận kết quả của hàm tạo “Tk ()” và được lưu vào biến “t”.



Biến “t” đã được sử dụng với hàm title () để thêm tiêu đề cho GUI cùng với hàm hình học () để xác định kích thước của cửa sổ GUI sẽ được hiển thị. Hàm grid () đã được gọi với biến “t” để tổ chức GUI theo định dạng bảng.

Sau đó, chúng tôi đã sử dụng biến “p” để tạo thanh tiến trình thông qua hàm Progressbar () của đối tượng lớp ttk với cùng một biến “t”, hướng ngang, độ dài 300 và chế độ không xác định. Thanh tiến trình đã được tổ chức theo cách dạng bảng thông qua hàm “grid ()” đang sử dụng phần đệm cụ thể cho trục “x” và “y”. Chúng tôi đã tạo hai nút, “s” và “e”, để bắt đầu chuyển động của thanh tiến trình, kết thúc và di chuyển qua lại.







Tham số cố định của hàm grid () cho cả hai nút xác định hướng, tức là Đông và Tây. Các lệnh, 'bắt đầu' và 'dừng', đã được đặt cho cả hai nút ở 9 thứ tự và 11 thứ tự hàng. Với việc thực thi hàm mainloop (), chương trình của chúng ta đã hoàn thành và sẵn sàng để sử dụng sau khi lưu.





Việc thực hiện đã diễn ra theo cách tương tự.





$ python3 new.py

Trên GUI được khởi chạy, màn hình sau đã được hiển thị:



Sau khi nhấn nút “Tap to Start”, thanh tiến trình bắt đầu di chuyển về phía trước.

Sau khi đến cuối, nó di chuyển theo hướng ngược lại, tức là hướng Tây.

Sau khi hoàn tất việc nhấn vào nút “Nhấn để dừng”, thanh tiến trình đã được đặt lại ở vị trí ban đầu.

Sự kết luận

Bài viết này cho thấy việc sử dụng thanh tiến trình trong Tkinter GUI. Chúng tôi chỉ đơn giản sử dụng các đối tượng của lớp Tkinter để gọi các tiện ích con khác nhau nhằm làm cho GUI Python tương tác hơn. Chúng tôi đã thảo luận về việc sử dụng các thanh tiến trình xác định và không xác định trong các ví dụ của chúng tôi. Chúng tôi hy vọng bạn thích thực hiện những điều này.