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
| ||||||||||||||||||||||||||||||||||||||
pen.setCapStyle(Qt.SquareCap) | تحدد شكل الطرف بتاع الخط(بداية ونهاية الخط)
| ||||||||||||||||||||||||||||||||||||||
pen.setJoinStyle(Qt.BevelJoin) | تحدد شكل الأركان أو الزوايا بتاعت الخط
| ||||||||||||||||||||||||||||||||||||||
open.setBrush(QBrush(Qt.Dense1Pattern)) | تحدد شكل ملئ الخط
|
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
Post a Comment