QFormLayoutشرح ال

 QFormLayout

 

تعمل نافذة مرتبة علي شكل صفوف  كل صف فيها يحتوي عمودين فقط

 

Create object of QPushButton:

 

Formbox = QFormLayout()

 Functions:

 

addRow(QLabel, QWidget)

آخر مثل زرار أو سليدر... إلخ (widget)عليها نص وبجانبه أي متحكم  Label تستخدم لإضافة

addRow(QLabel, QLayout)

 QVBoxLayoutآخري مثل (Layout)عليها نص وبجانبه أي حاويةLabel تستخدم لإضافة

addRow(QWidget)

addRow(QWidget,QWidget)

آخر بدون في العمودين معا مثل زرار أو سليدر... إلخ  (widget) تستخدم لإضافة أي متحكم

ويمكن إضافة متحكمين معا      

setVerticalSpacing(int)

تضع مسافة رأسية بين الصفوف

setHorizontalSpacing(int)

)Label وال Layoutتضع مسافة أفقية بين عناصر الصف الواحد (يعني مسافة بين ال

takeRow(index)

ويكتب بعد أوامر إضافة الصفوفQFormLayout معين من ال indexتستخدم لحذف الصف اللي ليه

removeRow(index)

بتاعهindex بمعلومية ال QFormLayoutتزيل صف من ال

بتاعه:                                      index  من خلال الQFormLayoutتضيف عنصر في أي مكان في ال

setWidget(4,QFormLayout.SpanningRole,add3)

بتاعه:                                      index  من خلال الQFormLayoutتضيف حاوية في أي مكان في ال

setLayout(5, QFormLayout.SpanningRole, hbox)

 

EX:

from PyQt5.QtWidgets import *
import sqlite3
import sys

class window(QWidget):
    def __init__(self):
        super(window, self).__init__()
        l1 = QLabel("Name")
        nm = QLineEdit()

        l2 = QLabel("Address")
        add1 = QLineEdit()
        add2 = QLineEdit()
        add3 = QLineEdit()
        fbox = QFormLayout()
        fbox.addRow(l1, nm)
        fbox.setVerticalSpacing(30)
        # fbox.setHorizontalSpacing(50)
        vbox = QVBoxLayout()
        vbox.addWidget(add1)
        vbox.addWidget(add2)
        l3 = QLineEdit("\"email-here\"@gmail.com")
        fbox.addRow(l2, vbox)
        r = fbox.addRow(l3)
        hbox = QHBoxLayout()
        r1 = QRadioButton("Male")
        r2 = QRadioButton("Female")
        l4 = QLabel("sex")
        hbox.addStrut(30)
        hbox.addWidget(l4)
        hbox.addWidget(r1)
        hbox.addWidget(r2)
        # fbox.removeRow(0)
        fbox.setLayout(5, QFormLayout.SpanningRole, hbox)
        fbox.addRow(QPushButton("Submit"), QPushButton("Cancel"))
        # fbox.takeRow(1)    #remove row of index(1) from the form

        self.setLayout(fbox)
        self.setWindowTitle("PyQt")

if __name__== '__main__':
    app = QApplication(sys.argv)
    wind = window()
    wind.show()
    app.exec()

Comments

Popular posts from this blog

QGridLayoutشرح ال