CodeGym /Các khóa học /Python SELF VI /Tạo cửa sổ chạy script

Tạo cửa sổ chạy script

Python SELF VI
Mức độ , Bài học
Có sẵn

1. Ý tưởng về đa nhiệm trong ứng dụng

Xin chào các "phù thủy" mới của tự động hoá, quay lại khóa học Python của chúng ta và hãy vui mừng – giờ đây chúng ta đã tạo được ứng dụng có giao diện đồ họa bằng Tkinter! Trong bài học này, chúng ta sẽ học cách làm cho ứng dụng trở nên mạnh mẽ hơn bằng cách thêm tính năng chạy các script khác từ giao diện người dùng. Thành thật mà nói, việc chạy các task tự động chỉ bằng một cái click chuột có thể làm cho chúng ta lười hơn... hoặc lại khiến chúng ta bị mắc kẹt trong "bẫy pyjama" tại nhà. Nhưng hãy thử xem làm điều đó như thế nào nhé!

Khái niệm đa nhiệm

Hãy tưởng tượng một tình huống: bạn có ứng dụng có thể tự động xử lý dữ liệu, thực hiện web-scraping, tạo báo cáo. Nhưng mỗi lần bạn muốn chạy một trong những script tuyệt vời của mình, bạn lại phải chuyển qua lại giữa các cửa sổ. Điều này giống như những chiếc TV cũ, bạn phải đứng dậy và bấm nút trên bảng điều khiển để đổi kênh... Sự phát triển đã giúp chúng ta với remote control, còn GUI Python của bạn sẽ giúp chạy script cho bạn!

Hiểu về việc thực hiện script bên ngoài

Với Tkinter, chúng ta có thể liên kết giao diện với các script bên ngoài, điều này thực sự hữu ích. Điều này có thể được thực hiện qua module tiêu chuẩn subprocess. Module cho phép khởi chạy các tiến trình mới, thực hiện lệnh trong shell và thậm chí tương tác với chúng. Hãy bắt đầu bước đầu tiên để tạo "trung tâm điều khiển tự động hóa".

import subprocess
# Ví dụ đơn giản chạy script Python
subprocess.run(["python", "script_cua_ban.py"])

2. Chọn file và tạo giao diện chạy

Giao diện chọn script

Đầu tiên, chúng ta muốn người dùng có thể chọn file script mà họ muốn chạy. Cách thuận tiện nhất để làm điều này là sử dụng widget FileDialog từ module tkinter.filedialog. Widget này sẽ mở một cửa sổ chọn file chuẩn, giống như một người bồi bàn tốt, đưa bạn đúng file mà bạn đã chọn.

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()  # Không muốn hiển thị cửa sổ chính

file_path = filedialog.askopenfilename(title="Chọn script để chạy")
print(f"File được chọn: {file_path}")

2.2 Tạo nút chạy

Bây giờ thêm một nút, sau khi chọn file, sẽ cho phép bạn chạy nó.

def launch_script():
    file_path = filedialog.askopenfilename(title="Chọn script để chạy")
    if file_path:
        subprocess.run(["python", file_path])

root = tk.Tk()
launch_button = tk.Button(root, text="Chạy script", command=launch_script)
launch_button.pack(pady=20)

root.mainloop()

Bây giờ chúng ta có một nút gọi hộp thoại chọn file, và sau khi chọn file, nút này sẽ chạy nó trong một process riêng biệt. Thật tuyệt vời!

3. Ứng dụng thực tế

Tạo giao diện quản lý

Chúng ta đã biết cách chạy một script. Hãy thêm các chức năng báo cáo lại và quản lý, để ứng dụng của chúng ta trông chuyên nghiệp hơn.

import tkinter as tk
from tkinter import filedialog, messagebox
import subprocess

def launch_script():
    file_path = filedialog.askopenfilename(title="Chọn script để chạy")
    if file_path:
        try:
            result = subprocess.run(["python", file_path], capture_output=True, text=True)
            messagebox.showinfo("Kết quả thực hiện", f"Script đã chạy thành công!\n\n{result.stdout}")
        except subprocess.CalledProcessError as e:
            messagebox.showerror("Lỗi thực hiện", f"Đã xảy ra lỗi khi chạy script:\n\n{e.stderr}")

root = tk.Tk()
launch_button = tk.Button(root, text="Chạy script", command=launch_script)
launch_button.pack(pady=20)

root.mainloop()

Xử lý lỗi

Chúng ta không sống trong một thế giới hoàn hảo không có lỗi. Hãy nhớ điều này và thêm xử lý lỗi, để người dùng không đập màn hình vì các lỗi "không rõ ràng". Chúng ta sử dụng try-except để hiện thông báo lỗi nếu không thể chạy script.

Trả về kết quả thực hiện

Bên cạnh việc chạy script, chúng ta thu thập kết quả thực hiện và hiển thị nó cho người dùng, vì ai mà không thích được nhìn thấy code của họ xuất sắc? Thực tế, điều này hữu ích cho việc debug và hiểu điều gì đã xảy ra.

4. Sử dụng tất cả điều này như thế nào?

Điều tuyệt vời nhất về khả năng tự động hóa qua GUI là tính linh hoạt. Tổ chức quy trình làm việc của bạn trở nên có hệ thống và hiệu quả hơn. Bạn có thể chạy các công việc như làm sạch dữ liệu, tạo báo cáo, thậm chí là gửi email — tất cả chỉ bằng một click. Trong môi trường kinh doanh, điều này có nghĩa là giảm thời gian làm việc nhàm chán và tập trung vào đổi mới. Khi đi phỏng vấn, điều này có thể trở thành vũ khí bí mật của bạn, thể hiện năng suất thực tế và kỹ năng tích hợp của bạn.

Bonus: giao diện của chúng ta không chỉ chạy Python mà còn có thể chạy hầu như bất kỳ loại script nào khác, bao gồm cả bash và batch file. Miễn là hệ thống biết cách chạy chúng.

Bây giờ hãy lấy ví dụ này, thêm một chút "ma thuật" chú thích, đồng nghiệp của bạn chắc chắn sẽ nghĩ bạn đang che giấu điều gì đó quan trọng. Nhưng bây giờ, hãy tiếp tục con đường tạo ra công cụ tự động hóa hoàn hảo của bạn!

Để tìm hiểu sâu hơn, bạn có thể tham khảo tài liệu chính thức của Tkintertài liệu về module subprocess, nơi bạn luôn có thể tìm thấy thêm nhiều chi tiết thú vị và các ví dụ khác.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION