2 هفته قبل

بدون دیدگاه

آموزش ساخت TODO با PySide6 + دانلود کد

چگونه با استفاده از PySide6 یک برنامه ساده گرافیکی (GUI) بسازیم؟ در این مقاله، با طراحی یک اپلیکیشن لیست وظایف (To-Do List) آشنا می‌شویم. این پروژه به شما کمک می‌کند تا اصول اولیه کار با PySide6 را یاد بگیرید.

کد اکسپلور همراه همیشگی شما در دنیای برنامه‌نویسی و تکنولوژی است. در این مقاله قصد داریم به کمک 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 دارید؟ چه قابلیت‌های دیگری را به این اپلیکیشن اضافه می‌کردید؟ نظرات و پیشنهادات خود را با ما در میان بگذارید. همچنین اگر سوالی دارید، حتما در بخش نظرات بپرسید تا به آن پاسخ دهیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیشنهاد های کد اکسپلور