QBoxLayoutشرح ال

 QBoxLayout

Create object:

 

boxlayout = QBoxLayout(QBoxLayout.Direction, self)

 

Direction

LeftToRight

0

ترتب العناصر أفقيا من اليسار لليمين

RightToLeft

1

ترتب العناصر أفقيا من اليمين لليسار

TopToBottom

2

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

BottomToTop

3

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

 

EX_1:Direction

boxlayout = QBoxLayout(QBoxLayout.LeftToRight, self)

 

Functions:

addWidget()

boxlayoutتضيف العناصر(زرار....إلخ) إلي ال

addLayout()

Boxlayout داخل ال layout تضيف

addSpacing()

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

addStrut()

 مسافة معينة بين العناصر وبعضها وكذلك العناصر والنافذة تضيف

setContentsMargins(ش,فوق,ج,تحت)

من جميع الجهات   عن النافذةlayoutتحدد المسافة بين ال

spaceItem = QSpacerItem(x, y, QSizePolicy.Expanding)

boxlayout.addSpacerItem(spaceItem)

ونوعها x, yتمنع تمدد العناصر وتخلق بينهم مسافة أبعادها  والعناصرمتمددةFixedوالعناصر ثابتة أو ثابتةExpandingإما متمددة

والعناصرمتمددة Fixedوالعناصر ثابتة أو ثابتةExpanding ونوعها إما  متمددةx, yتمنع تمدد العناصر وتخلق بينهم مسافة أبعادها

verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
boxlayout.addItem(verticalSpacer)

addStretch()

 موقع تمنع تمدد العناصر مع النافذة وتضيف مربع فارغ قبل أو بعد أوبين العناصر حسب layout.addWidget(btn)بين أمر إضافة العناصرboxlayout.addStretch() إستخدام الأمر  

 

 

EX_2:addstretch() function

from PyQt5.QtWidgets import *
import sys
class window(QWidget):
    def __init__(self):
        super(window, self).__init__()
        self.resize(500, 250)
        btn1 = QPushButton()
        btn1.resize(100,50)
        btn1.setText("click_1")
        btn2 = QPushButton()
        btn2.setText("click_2")
        lay = QBoxLayout(QBoxLayout.LeftToRight, self)
        # addstretch() function
        lay.addStretch()
        lay.addWidget(btn1)
        lay.addWidget(btn2)
        self.setLayout(lay)
        lay.addStretch()

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

 

 

 

EX_2:

# from PyQt5 import Qt
# from PyQt5.QtGui import QCursor
# from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
class window(QWidget):
    def __init__(self):
        super(window, self).__init__()
        self.resize(500, 500)
        btn1 = QPushButton()
        btn1.setText("click_1")
        btn2 = QPushButton()
        btn2.setText("click_2")
        btn3 = QPushButton()
        btn3.setText("click_3")
        btn4 = QPushButton()
        btn4.setText("click_4")
        boxlayout = QBoxLayout(QBoxLayout.TopToBottom, self)

        boxlayout.addWidget(btn1)
        # boxlayout.addStrut(20)
        verticalSpacer = QSpacerItem(50, 100, QSizePolicy.Minimum, QSizePolicy.Expanding)
        boxlayout.addItem(verticalSpacer)
        boxlayout.addWidget(btn2)
        boxlayout.addWidget(btn3)
        boxlayout.addWidget(btn4)
        # boxlayout.setContentsMargins(60,90,60,30)
        # boxlayout.addSpacing(100)
        # # addstretch() function
        # spaceItem = QSpacerItem(150, 10, QSizePolicy.Fixed)
        # boxlayout.addSpacerItem(spaceItem)
        # boxlayout.addWidget(btn1)
        # boxlayout.addSpacing(20)
        # boxlayout.addWidget(btn2)
        # boxlayout.addSpacing(100)
        self.setLayout(boxlayout)
if __name__=='__main__':
    app = QApplication(sys.argv)
    wind = window()
    wind.show()
    app.exec()

 

 

 

 

 

 

 

 

 

 

 

 

V_layout = QVBoxLayout()

ترتب العناصر داخلها رأسيا

H_layout = QHBoxLayout()

ترتب العناصر داخلها أفقيا

addWidget()

boxlayoutتضيف العناصر(زرار....إلخ) إلي ال

addLayout()

Boxlayout داخل ال layout تضيف

addSpacing()

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

addStrut()

 مسافة معينة بين العناصر وبعضها وكذلك العناصر والنافذة تضيف

addWidget()

boxlayoutتضيف العناصر(زرار....إلخ) إلي ال

addStretch()

 موقع تمنع تمدد العناصر مع النافذة وتضيف مربع فارغ قبل أو بعد أوبين العناصر حسب layout.addWidget(btn)بين أمر إضافة العناصرboxlayout.addStretch() إستخدام الأمر  

setMenuBar()

QHBoxLayoutأو QVBoxLayoutتضيف شريط  القوائم إلي ال

: من جميع الجهات عن النافذةlayoutتحدد المسافة بين ال

setContentsMargins(شمال,فوق,جنوب,تحت)

 

EX:

# from PyQt5 import Qt
# from PyQt5.QtGui import QCursor
# from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
class window(QWidget):
    def __init__(self):
        super(window, self).__init__()
        self.resize(300, 200)
        btn1 = QPushButton()
        btn1.setText("click_1")
        btn2 = QPushButton()
        btn2.setText("click_2")
        btn3 = QPushButton()
        btn3.setText("click_3")
        btn4 = QPushButton()
        btn4.setText("click_4")
        v = QVBoxLayout()    # create vertical layout
        v.addWidget(btn1)
        # v.addSpacing(10)
        v.addWidget(btn2)
        v.addStrut(50)
        h = QHBoxLayout()    # create horizontal layout
        h.addWidget(btn3)
        # h.addSpacing(10)
        h.addWidget(btn4)
        v.addLayout(h)    # add horizontal layout
        self.setLayout(v)
if __name__=='__main__':
    app = QApplication(sys.argv)
    wind = window()
    wind.show()
    app.exec()

 

 

 

 

 

 

 

Comments

Popular posts from this blog

QFormLayoutشرح ال

QGridLayoutشرح ال