حال که با ساخت پنجره و ایجاد برچسب در صفحه آشنا شدید، وقت آن است سطح کار را بالاتر ببریم و تعامل با کاربر را نیز ایجاد کنیم. یکی از سادهترین روشها برای این کار استفاده از کلید یا دکمه (Button) است. این دکمه میتواند برای انجام عملیاتهای گوناگون استفاده شود؛ از اجرای دستورات ساده تا کنترل المانهای دیگر یا اجرای اسکریپتهای خارجی که خودتان نوشتهاید.
کلید یا Button
در PyQt6 برای ساخت کلید از کلاس QPushButton استفاده میکنیم. این کلاس امکانات زیادی برای تنظیم ظاهر و رفتار دکمه دارد. برای نمونه میتوانید متن دکمه، رنگها، وضعیت فعال یا غیرفعال بودن و فرمان (عملیاتی که با کلیک انجام میشود) را مشخص کنید. در مثال زیر یک دکمهی ساده ایجاد کردهایم:
# Function Example
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
# creating application
app = QApplication(sys.argv)
# creating main window
window = QWidget()
window.setWindowTitle("icc-aria gui app")
# creating layout
layout = QVBoxLayout()
# creating a button
button = QPushButton("Click Me")
# adding button to layout
layout.addWidget(button)
# setting layout for the window
window.setLayout(layout)
# showing window
window.show()
# running app
sys.exit(app.exec())
# OOP Example
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
class App(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("icc-aria gui app")
# layout setup
layout = QVBoxLayout()
# creating a button
button = QPushButton("Click Me")
# adding button to layout
layout.addWidget(button)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec())
نمونه خروجی:
اما تغییرات فقط در زمان ساخت انجام نمیشود؛ در هر لحظه میتوانید ویژگیهای دکمه را تغییر دهید. در PyQt6 این کار با استفاده از متدهای مربوط به QPushButton یا از طریق setStyleSheet انجام میشود. در مثال زیر ابتدا دکمه را ایجاد کرده و سپس تنظیمات مختلفی را روی آن اعمال میکنیم:
# Function Example
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("icc-aria gui app")
layout = QVBoxLayout()
# creating a button
btn = QPushButton()
# configuring the button after creation
btn.setText("Click Me")
btn.setStyleSheet("background-color: yellow; color: red;")
# adding button to layout
layout.addWidget(btn)
window.setLayout(layout)
window.show()
sys.exit(app.exec())
# OOP Example
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
class App(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("icc-aria gui app")
layout = QVBoxLayout()
# creating a button
self.btn = QPushButton()
# configuring button after creation
self.btn.setText("Click Me")
self.btn.setStyleSheet("background-color: yellow; color: red;")
layout.addWidget(self.btn)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = App()
window.show()
sys.exit(app.exec())
نمونه خروجی: