Python GUI

PyQt5 هي مجموعة من روابط بايثون لإطار عمل تطبيقات Qt، والتي تُستخدم على نطاق واسع لإنشاء واجهات مستخدم رسومية (GUIs) متعددة المنصات.

تهدف هذه المقالة إلى توفير دليل شامل لإتقان تطوير واجهات المستخدم الرسومية في بايثون باستخدام PyQt5.

البدء

لبدء استخدام PyQt5، يجب تثبيته باستخدام pip:

pip install pyqt5

بعد التثبيت، يمكنك استيراد الوحدات النمطية اللازمة في سكربت بايثون الخاص بك:

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout

إنشاء واجهة مستخدم رسومية بسيطة

لنُنشئ واجهة مستخدم رسومية بسيطة بزر واحد.

class MyApp(QWidget):
  def init(self):
    super().init()
    self.initUI()
 def initUI(self):
   button = QPushButton('انقر هنا!', self)
   layout = QVBoxLayout(self)
   layout.addWidget(button)
   self.setLayout(layout)
   self.setWindowTitle('تطبيقي الأول على PyQt5')
   self.show()
if name == 'main':
app = QApplication([])
ex = MyApp()
app.exec_()

يُنشئ هذا البرنامج النصي فئة جديدة MyApp ترث من QWidget. تُستخدم دالة initUI لإعداد واجهة المستخدم الرسومية. هنا، نُنشئ QPushButton وQVBoxLayout، ونضيف الزر إلى التخطيط، ونُعيّن التخطيط إلى الأداة.

سيؤدي تشغيل هذا البرنامج النصي إلى عرض نافذة بزر واحد.

عناصر واجهة المستخدم الرسومية المتقدمة

يوفر PyQt5 مجموعة واسعة من الأدوات لإنشاء واجهات مستخدم رسومية معقدة. إليك مثال لواجهة مستخدم رسومية تحتوي على مدخل نص، وزر، وتسمية لعرض المدخلات:

class MyApp(QWidget):
  def init(self):
  super().init()
  self.initUI()
  def initUI(self):
   self.line_edit = QLineEdit(self)
   self.button = QPushButton('Submit', self)
   self.label = QLabel('', self)
   layout = QGridLayout(self)
   layout.addWidget(self.line_edit, 0, 0)
   layout.addWidget(self.button, 0, 1)
   layout.addWidget(self.label, 1, 0, 1, 2)
   self.button.clicked.connect(self.on_button_clicked)
   self.setWindowTitle('PyQt5 GUI')
   self.show()
  def on_button_clicked(self):
    text = self.line_edit.text()
    self.label.setText(text)
  if name == 'main':
app = QApplication([])
ex = MyApp()
app.exec_()

في هذا البرنامج النصي، أضفنا QLineEdit لإدخال المستخدم، وQLabel لعرض الإدخال، وربطنا إشارة clicked للزر بفتحة on_button_clicked. عند النقر على الزر، يظهر النص من تعديل السطر في التسمية.

النتيجة

PyQt5 أداة فعّالة لإنشاء واجهات مستخدم رسومية متعددة المنصات في بايثون. قدّم هذا الدليل مقدمة أساسية لإنشاء واجهات مستخدم رسومية باستخدام PyQt5، ولكن لا يزال هناك الكثير لاستكشافه. لمزيد من الميزات المتقدمة، يمكنك الرجوع إلى وثائق PyQt5 الرسمية: https://www.riverbankcomputing.com/static/Docs/PyQt5/