کد اکسپلور همراه همیشگی شما در دنیای برنامهنویسی و تکنولوژی است. در این مقاله قصد داریم به کمک PySide6، یک اپلیکیشن گرافیکی کوچک و ساده بسازیم. PySide6 یکی از رابطهای قدرتمند برای توسعه برنامههای گرافیکی با استفاده از کتابخانه Qt6 است. این پروژه به شما یاد میدهد چگونه اجزای اصلی یک برنامه گرافیکی را ایجاد و مدیریت کنید.
فهرست محتوا
مراحل پیادهسازی پروژه
1. نصب PySide6
برای نصب این کتابخانه، دستور زیر را در محیط ترمینال یا CMD وارد کنید:
pip install PySide6
2. ساختار پروژه
برنامه ما یک اپلیکیشن لیست وظایف (To-Do List) ساده خواهد بود که شامل:
- امکان اضافه کردن وظایف.
- امکان حذف وظایف انتخابی.
- نمایش وظایف به صورت لیستی.
یک خبر مرتبط بخوانید: معرفی ویژگیهای جدید Qt 6.8
3. کد نهایی پروژه
در این قسمت کد کامل اپلیکیشن را مشاهده میکنید. در صورت تمایل میتوانید از گیت هاب کداکسپلور، دانلود کنید:
import sys from PySide6.QtWidgets import ( QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QListWidget, QPushButton, QLineEdit, QMessageBox ) class ToDoApp(QMainWindow): def __init__(self): super().__init__() # Set up the main window self.setWindowTitle("To-Do List App") self.setGeometry(300, 300, 400, 300) # Create the main widget and set it as the central widget self.central_widget = QWidget() self.setCentralWidget(self.central_widget) # Set up the layout self.layout = QVBoxLayout() self.central_widget.setLayout(self.layout) # Create the list widget to display tasks self.task_list = QListWidget() self.layout.addWidget(self.task_list) # Create a horizontal layout for input and buttons self.input_layout = QHBoxLayout() self.layout.addLayout(self.input_layout) # Create a text input for adding tasks self.task_input = QLineEdit() self.task_input.setPlaceholderText("Enter a new task...") self.input_layout.addWidget(self.task_input) # Create the 'Add' button self.add_button = QPushButton("Add Task") self.add_button.clicked.connect(self.add_task) self.input_layout.addWidget(self.add_button) # Create the 'Remove' button self.remove_button = QPushButton("Remove Selected Task") self.remove_button.clicked.connect(self.remove_task) self.layout.addWidget(self.remove_button) def add_task(self): """Add a new task to the list.""" task = self.task_input.text().strip() if task: self.task_list.addItem(task) self.task_input.clear() else: QMessageBox.warning(self, "Warning", "Task cannot be empty!") def remove_task(self): """Remove the selected task from the list.""" selected_item = self.task_list.currentItem() if selected_item: self.task_list.takeItem(self.task_list.row(selected_item)) else: QMessageBox.warning(self, "Warning", "No task selected!") # Main function to run the app def main(): app = QApplication(sys.argv) window = ToDoApp() window.show() sys.exit(app.exec()) if __name__ == "__main__": main()
توضیح خط به خط کد
1. وارد کردن کتابخانههای مورد نیاز
import sys from PySide6.QtWidgets import ...
در این بخش کتابخانههای PySide6 برای ایجاد رابط کاربری و همچنین sys برای مدیریت اجرای برنامه وارد شدهاند.
2. تنظیمات اولیه پنجره اصلی
class ToDoApp(QMainWindow): def __init__(self): super().__init__()
در این بخش یک کلاس به نام ToDoApp
تعریف شده که از QMainWindow
ارثبری کرده است. درون این کلاس، عنوان پنجره و اندازه آن تنظیم شدهاند.
3. تعریف ویجتها و لایهبندیها
self.task_list = QListWidget() self.task_input = QLineEdit()
در این بخش، از ویجتهای QListWidget برای نمایش وظایف و QLineEdit برای وارد کردن متن استفاده شده است.
همچنین بخوانید: آشنایی با ویژگی property@ در CSS
4. اتصال دکمهها به توابع
self.add_button.clicked.connect(self.add_task) self.remove_button.clicked.connect(self.remove_task)
با استفاده از متد connect
، دکمهها به توابع add_task
و remove_task
متصل شدهاند.
5. اجرای برنامه
def main(): app = QApplication(sys.argv) window = ToDoApp() window.show() sys.exit(app.exec())
صحبت آخر
ساخت یک اپلیکیشن ساده با PySide6 تجربهای عالی برای آشنایی با رابطهای گرافیکی در پایتون است. در این پروژه، یاد گرفتیم چگونه از PySide6 برای ساخت ویجتها و مدیریت رویدادها استفاده کنیم. شما میتوانید با افزودن قابلیتهایی مانند ذخیرهسازی وظایف یا تعیین اولویت این اپلیکیشن را گسترش دهید.
آیا شما تجربهای در استفاده از PySide6 دارید؟ چه قابلیتهای دیگری را به این اپلیکیشن اضافه میکردید؟ نظرات و پیشنهادات خود را با ما در میان بگذارید. همچنین اگر سوالی دارید، حتما در بخش نظرات بپرسید تا به آن پاسخ دهیم.