QPainterوQPenوQPixmapشرح ال

 QPixmap

 

تستخدم لوضع صورة داخل البرنامج والتعامل مع الصور

 

Create object of QPushButton:

 

                 pixmap = QPixmap('111.png').scaled(200, 200)

EX:

from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import *
import sys

class UI(QDialog):
    def __init__(self):
        super().__init__()
        self.resize(200, 200)
        pixmap = QPixmap('111.png').scaled(200, 200)
        lbl = QLabel(self)
        lbl.setPixmap(pixmap)

app = QApplication(sys.argv)
window = UI()
window.show()
app.exec_()

 

 Functions:

 

copy()

Copies pixmap data from a QRect object

fromImage()

Converts QImage object into QPixmap

grabWidget()

Creates a pixmap from the given widget

grabWindow()

Create pixmap of data in a window

Load()

Loads an image file as pixmap

save()

Saves the QPixmap object as a file

toImage

Converts a QPixmap to QImage

 

EX:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QPixmap

class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.im = QPixmap('112.png')
        self.label = QLabel()
        self.label.setPixmap(self.im)

        self.grid = QGridLayout()
        self.grid.addWidget(self.label,1,1)
        self.setLayout(self.grid)

        self.setGeometry(50,50,320,200)
        self.setWindowTitle("PyQT show image")
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()

ex.show()
    app.exec_()

 

QPen class

 

QPainter علشان يحدد شكل الخط وشكل الحواف للأشكال اللي بيتم رسمها بالQPainterيستخدم مع ال

 

Create object:

 

from PyQt5.QtGui import QPen

pen = QPen((

 

Functions:

 

pen.setWidth(int)

تحدد سمك الخط

pen.setColor(Qt.gray)

تحدد لون الخط

pen.setStyle(int)

تحدد شكل الخط من 0 إلي 5

 

Qt.NoPen

0

Qt.SolidLine

1

Qt.DashLine

2

Qt.DotLine

3

Qt.DashDotLine

4

Qt.DashDotDotLine

5

 

pen.setCapStyle(Qt.SquareCap)

تحدد شكل الطرف بتاع الخط(بداية ونهاية الخط)

 

Qt.FlatCap

0x00

Qt.SquareCap

0x10

Qt.RoundCap

0x20

 

pen.setJoinStyle(Qt.BevelJoin)

تحدد شكل الأركان أو الزوايا بتاعت الخط

 

Qt.MiterJoin

0x00

Qt.BevelJoin

0x40

Qt.RoundJoin

0x80

Qt.SvgMiterJoin

0x100

 

open.setBrush(QBrush(Qt.Dense1Pattern))

تحدد شكل ملئ الخط

 

Qt.NoBrush

0

Qt.SolidPattern

1

Qt.Dense1Pattern

2

Qt.Dense2Pattern

3

Qt.Dense3Pattern

4

Qt.Dense4Pattern

5

Qt.Dense5Pattern

6

Qt.Dense6Pattern

7

Qt.Dense7Pattern

8

Qt.HorPattern

9

Qt.VerPattern

10

Qt.CrossPattern

11

Qt.BDiagPattern

12

Qt.FDiagPattern

13

Qt.DiagCrossPattern

14

Qt.LinearGradientPattern

15

Qt.ConicalGradientPattern

17

Qt.RadialGradientPattern

16

Qt.TexturePattern

24

 

 

 

QPainter class

علي النافذة……تستخدم لرسم أشكال مثل المربع والخط والمستطيل

 

Create object:

 

from PyQt5.QtGui import QPainter

painter = QPainter((

 

Steps:

 

 

ونحط جواها كود الرسم كما يلي: def paintEvent(self, QPaintEvent):بنعمل دالة أسمها QPainterللإستخدام ال

def paintEvent(self, QPaintEvent):
    painter = QPainter(self)
    painter.setPen(QPen(Qt.green, 8, Qt.DashLine))
    painter.drawEllipse(10,10,300,300)  # draw circle on window

 

Functions:

 

painter.drawEllipse(x,y,w,h)

تستخدم لرسم دائرة أو شكل بيضاوي

painter.drawArc(x,y,length,width, startAngle, spanAngle)

ترسم قوس

painter.drawLine(x1, y1, x2, y2)

ترسم خط بين نقطتين

begin()

تبدأ الرسم علي النافذة المرادة

drawText(x,y,’text’)

ترسم نص عند المقطة المعطاة

 

EX:

 

from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtCore import Qt, QPoint
from PyQt5.QtGui import )QPainterPath,QPolygon,QFont,QPainter,QPen,QPixmap,QBrush(
import sys

class window(QWidget):
    def __init__(self):
        super(window,self).__init__()

    def paintEvent(self, QPaintEvent):
        # ترسم دائرة محيط فقط
        # painter = QPainter(self)
        # painter.drawEllipse(10,10,300,300)

        # # ترسم دائرة مملوءة من الداخل بنمط Qt.SolidPattern
        # painter = QPainter(self)
        # painter.setBrush(QBrush(Qt.red, Qt.SolidPattern))
        # painter.drawEllipse(10, 10, 300, 300)

        # # ترسم دائرة مملوءة من الداخل بلون معينQt.CrossPattern
        # painter = QPainter(self)
        # painter.setBrush(QBrush(Qt.red, Qt.CrossPattern))
        # painter.drawEllipse(10, 10, 300, 300)

        # # ترسم قوس كجزء من دائرة
        # painter = QPainter(self)
        # painter.setPen(Qt.green)
        # painter.drawArc(100, 70, 300, 300, 0 * 16, 180 * 16)

        # # ترسم خط بين نقطتين
        # painter = QPainter(self)
        # painter.setPen(Qt.green)
        # painter.drawLine(0, 10, 200, 200)
        # # ترسم خط أفقي
        # painter = QPainter(self)
        # painter.setPen(Qt.blue)
        # painter.drawLine(400, 100, 100, 100)
        # # ترسم خط رأسي
        # painter = QPainter(self)
        # painter.setPen(Qt.blue)
        # painter.drawLine(100, 100, 100, 400)
        # # ترسم سهم
        # painter = QPainter(self)
        # painter.drawLine(400, 100, 100, 100)
        # painter.drawLine(150, 150, 100, 100)
        # painter.drawLine(150, 50, 100, 100)

        # # ترسم منحني
        # painter = QPainter(self)
        # path = QPainterPath()
        # path.moveTo(40, 40)
        # path.cubicTo(40, 40, 150, 250, 250, 40)
        # painter.drawPath(path)

        # # ترسم مثلث
        # painter = QPainter(self)
        # path = QPainterPath()
        # painter.setPen(Qt.blue)
        # painter.setBrush(Qt.blue) # fill the triangle
        # path.lineTo(160, 400)
        # path.lineTo(350, 100)
        # path.lineTo(10, 25)
        # painter.drawPath(path)

        # # draw polygon
        # painter = QPainter(self)
        # painter.setPen(QPen(Qt.black,  5, Qt.SolidLine))
        # painter.setBrush(QBrush(Qt.black, Qt.SolidPattern))
        # points = [QPoint(10,10),QPoint(10,100),QPoint(100,10),
        #     QPoint(100,100)]
        # poly = QPolygon(points)
        # painter.drawPolygon(poly)

        #  # ترسم صورة علي النافذة ومعها مستطيل
        # pixmap = QPixmap('download.png')
        # painter = QPainter(self)
        # painter.setPen(QPen(Qt.black,  5, Qt.SolidLine))
        # painter.drawRect(10,10,600,200)  # draw rectangular on window
        # painter.drawPixmap(self.rect(), pixmap)  # draw image on window

        # ترسم نص عند النقطة المعطاة
        painter = QPainter(self)
        painter.drawText(10,10,'welcome')

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

 

 

 

Comments

Popular posts from this blog

QFormLayoutشرح ال

QGridLayoutشرح ال