در PyQt6 تمامی ویجتها مانند دکمهها، برچسبها، ورودیها، چکباکسها و غیره قابلیتهای مشابهی برای سفارشیسازی دارند. ساختار کلی ایجاد یک ویجت به شکل زیر است:
WidgetClass(parent: QWidget | None = None)
در این ساختار، parent پنجره یا ویجتی است که این المان داخل آن ایجاد میشود. سایر ویژگیها و گزینهها با متدها، ویژگیها یا StyleSheet قابل تنظیم هستند. قابلیتهای رایج در اکثر ویجتها عبارتند از:
- text: متن روی ویجت (در صورت پشتیبانی) را مشخص میکند.
- font: فونت متن با استفاده از کلاس QFont تنظیم میشود.
- foreground / fg: رنگ متن با setStyleSheet یا QPalette تغییر میکند.
- background / bg: رنگ پسزمینه با setStyleSheet یا QPalette تغییر میکند.
- enabled / state: فعال یا غیر فعال کردن ویجت با setEnabled(True/False).
- size / width / height: اندازه ویجت با setFixedSize، setMinimumSize یا setMaximumSize قابل تنظیم است.
- cursor: تغییر نشانگر موس هنگام Hover با setCursor.
- toolTip: متن راهنما هنگام حرکت موس روی ویجت با setToolTip.
- alignment / justify: چینش متن یا محتوای داخلی ویجت با setAlignment یا setStyleSheet.
- icon / image: برای ویجتهایی مانند دکمه یا لیبل، افزودن تصویر با setIcon یا setPixmap.
- checkable / toggle: در ویجتهای قابل انتخاب مانند QPushButton یا QCheckBox، قابلیت حالت انتخابی را فعال میکند.
- signal-slot: اتصال عملکرد یا رویدادها به ویجتها با متد connect و سیگنالهای مربوطه.
به عنوان مثال، تغییر رنگ و فونت ویجتها معمولاً با StyleSheet انجام میشود:
my_widget.setStyleSheet("background-color: blue; color: white; font: 16pt Tahoma")
برای تغییر اندازه:
my_widget.setFixedSize(120, 50) # width=120, height=50
برای فعال یا غیر فعال کردن ویجت:
my_widget.setEnabled(True) # فعال
my_widget.setEnabled(False) # غیر فعال
برای اتصال عملکرد به رویداد ویجت:
my_widget.clicked.connect(my_function) # مثال برای دکمه
در نتیجه، تمام ویجتهای PyQt6 از این الگو پیروی میکنند و میتوان با استفاده از متدها، ویژگیها و StyleSheet آنها را سفارشیسازی نمود. ویژگیهای ظاهری با StyleSheet و عملکردها با سیگنالها و اسلاتها مدیریت میشوند.