Python源码示例:PyQt5.QtCore.Qt.SmoothTransformation()
示例1
def _paint_frame(self, event):
if self.bgimage:
pixmap = self._build_pixmap(self.bgimage)
# Check we need to resize the bgimage
if self.bgsize:
bgsize = self.bgsize
if self.bgsize == 'fit':
bgsize = self.size()
pixmap = pixmap.scaled(bgsize, Qt.KeepAspectRatio, Qt.SmoothTransformation)
# Calculate the x,y position
x,y = self.bgpos
if self.bgpos:
if x == 'left': x = 0
elif x == 'center': x = (self.width() / 2) - (pixmap.width() / 2)
elif x == 'right': x = self.width() - pixmap.width()
if y == 'top': y = 0
elif y == 'center': y = (self.height() / 2) - (pixmap.height() / 2)
elif y == 'bottom': y = self.height() - pixmap.height()
# Draw the pixmap
painter = QtGui.QPainter(self)
painter.setOpacity(self.bgopacity)
painter.drawPixmap(int(x), int(y), pixmap)
示例2
def set_status(self, raw, exist=None):
item = QLabel()
item.setAlignment(Qt.AlignCenter)
if exist is 0:
icon = QPixmap(QUEUE_ICON).scaled(20, 20, Qt.KeepAspectRatio,
Qt.SmoothTransformation)
item.setPixmap(icon)
item.setToolTip('Waiting in the download queue...')
if exist is 1:
icon = QPixmap(CHECK_ICON).scaled(20, 20, Qt.KeepAspectRatio,
Qt.SmoothTransformation)
item.setPixmap(icon)
item.setToolTip('All the features are downloaded...')
if exist is 2:
item = QPushButton(self)
item.setToolTip('Download')
item.setIcon(QIcon(DOWNLOAD_ICON))
item.clicked.connect(self.download_clicked)
self.setCellWidget(raw, 0, item)
示例3
def _draw_pixmap(self, painter, draw_width, draw_height, scrolled):
# scale pixmap
scaled_pixmap = self._pixmap.scaledToWidth(
draw_width,
mode=Qt.SmoothTransformation)
pixmap_size = scaled_pixmap.size()
# draw the center part of the pixmap on available rect
painter.save()
brush = QBrush(scaled_pixmap)
painter.setBrush(brush)
# note: in practice, most of the time, we can't show the
# whole artist pixmap, as a result, the artist head will be cut,
# which causes bad visual effect. So we render the top-center part
# of the pixmap here.
y = (pixmap_size.height() - draw_height) // 3
painter.translate(0, - y - scrolled)
rect = QRect(0, y, draw_width, draw_height)
painter.drawRect(rect)
painter.restore()
示例4
def paintEvent(self, event):
ancho, altura = self.width(), self.height()
icono = self.icono.scaled(ancho, altura, Qt.KeepAspectRatio, Qt.SmoothTransformation)
pintor = QPainter()
pintor.begin(self)
pintor.setRenderHint(QPainter.Antialiasing, True)
pintor.setPen(Qt.NoPen)
pintor.drawPixmap(0, 0, icono, 0, 0, 0, 0)
pintor.setPen(Qt.white)
pintor.drawText(event.rect(), Qt.AlignCenter, self.etiqueta)
pintor.setPen(Qt.NoPen)
pintor.setBrush(self.opacidad)
pintor.drawEllipse(0, 0, ancho, altura)
pintor.end()
self.setMask(icono.mask())
示例5
def initUI(self):
label = QLabel(self)
label.setPixmap(QPixmap("Imagenes/siacle.jpg").scaled(450, 450, Qt.KeepAspectRatio,
Qt.SmoothTransformation))
label.move(0, 0)
botonCerrar = QPushButton("Cerrar", self)
botonCerrar.setFixedSize(430, 32)
botonCerrar.move(10, 457)
# ========================= EVENTO =========================
botonCerrar.clicked.connect(self.close)
# ========================= CLASE Acerca ===========================
示例6
def initUI(self):
label = QLabel(self)
label.setPixmap(QPixmap("Imagenes/siacle.jpg").scaled(450, 450, Qt.KeepAspectRatio,
Qt.SmoothTransformation))
label.move(0, 0)
labelAcerca = QLabel("SIACLE: sistema para administrar clientes, diseñado y\n"
"desarrollado por ANDRES NIÑO con fines educativos.", self)
labelAcerca.move(10, 460)
botonCerrar = QPushButton("Cerrar", self)
botonCerrar.setFixedSize(80, 32)
botonCerrar.move(360, 457)
# ========================= EVENTO =========================
botonCerrar.clicked.connect(self.close)
# ========================= CLASE Siacle ===========================
示例7
def initUI(self):
# ==================== WIDGET QLABEL =======================
self.labelImagen = QLabelClickable(self)
self.labelImagen.setGeometry(15, 15, 118, 130)
self.labelImagen.setToolTip("Imagen")
self.labelImagen.setCursor(Qt.PointingHandCursor)
self.labelImagen.setStyleSheet("QLabel {background-color: white; border: 1px solid "
"#01DFD7; border-radius: 5px;}")
self.pixmapImagen = QPixmap("Qt.png").scaled(112, 128, Qt.KeepAspectRatio,
Qt.SmoothTransformation)
self.labelImagen.setPixmap(self.pixmapImagen)
self.labelImagen.setAlignment(Qt.AlignCenter)
# ===================== EVENTO QLABEL ======================
# Llamar función al hacer clic o doble clic sobre el label
self.labelImagen.clicked.connect(self.Clic)
# ======================= FUNCIONES ============================
示例8
def doClockwise(self):
# 顺时针45度
image = QImage(self.srcImage.size(),
QImage.Format_ARGB32_Premultiplied)
painter = QPainter()
painter.begin(image)
# 以图片中心为原点
hw = self.srcImage.width() / 2
hh = self.srcImage.height() / 2
painter.translate(hw, hh)
painter.rotate(45) # 旋转45度
painter.drawImage(-hw, -hh, self.srcImage) # 把图片绘制上去
painter.end()
self.srcImage = image # 替换
self.imageLabel.setPixmap(QPixmap.fromImage(self.srcImage))
# # 下面这个旋转方法针对90度的倍数,否则图片会变大
# trans = QTransform()
# trans.rotate(90)
# self.srcImage = self.srcImage.transformed(
# trans, Qt.SmoothTransformation)
# self.imageLabel.setPixmap(QPixmap.fromImage(self.srcImage))
示例9
def doAnticlockwise(self):
# 逆时针45度
image = QImage(self.srcImage.size(),
QImage.Format_ARGB32_Premultiplied)
painter = QPainter()
painter.begin(image)
# 以图片中心为原点
hw = self.srcImage.width() / 2
hh = self.srcImage.height() / 2
painter.translate(hw, hh)
painter.rotate(-45) # 旋转-45度
painter.drawImage(-hw, -hh, self.srcImage) # 把图片绘制上去
painter.end()
self.srcImage = image # 替换
self.imageLabel.setPixmap(QPixmap.fromImage(self.srcImage))
# # 下面这个旋转方法针对90度的倍数,否则图片会变大
# trans = QTransform()
# trans.rotate(90)
# self.srcImage = self.srcImage.transformed(
# trans, Qt.SmoothTransformation)
# self.imageLabel.setPixmap(QPixmap.fromImage(self.srcImage))
示例10
def __init__(self, *args, **kwargs):
super(Window, self).__init__(*args, **kwargs)
layout = QVBoxLayout(self)
self.imgLabel = QLabel(self)
self.coldSlider = QSlider(Qt.Horizontal, self)
self.coldSlider.valueChanged.connect(self.doChange)
self.coldSlider.setRange(0, 255)
layout.addWidget(self.imgLabel)
layout.addWidget(self.coldSlider)
# 加载图片
self.srcImg = QImage('src.jpg')
self.imgLabel.setPixmap(QPixmap.fromImage(self.srcImg).scaledToWidth(800, Qt.SmoothTransformation))
# DLL库
self.dll = CDLL('Cold.dll')
print(self.dll)
示例11
def paint(self, painter, option, index):
column = index.column()
if column == 1:
pixmap = None
status = index.data(Qt.UserRole)
if status == MagicFolderChecker.LOADING:
self.waiting_movie.setPaused(False)
pixmap = self.waiting_movie.currentPixmap().scaled(
20, 20, Qt.KeepAspectRatio, Qt.SmoothTransformation
)
elif status in (
MagicFolderChecker.SYNCING,
MagicFolderChecker.SCANNING,
):
self.sync_movie.setPaused(False)
pixmap = self.sync_movie.currentPixmap().scaled(
20, 20, Qt.KeepAspectRatio, Qt.SmoothTransformation
)
if pixmap:
point = option.rect.topLeft()
painter.drawPixmap(QPoint(point.x(), point.y() + 5), pixmap)
option.rect = option.rect.translated(pixmap.width(), 0)
super(Delegate, self).paint(painter, option, index)
示例12
def resizeEvent(self, event):
# Resize images only if the width of the scroll area
# is shorter than that of images
for i, lbl in enumerate(self.lbl_img_list):
w = self.width() - QStyle.PM_ScrollBarExtent
if w < self.pixmap_list[i].width():
lbl.setPixmap(
self.pixmap_list[i].scaledToWidth(
w, Qt.SmoothTransformation))
else:
lbl.setPixmap(
self.pixmap_list[i].scaledToWidth(
self.pixmap_list[i].width()))
return super().resizeEvent(event)
示例13
def update_preview(self):
if not self._preview_pixmap:
return
scaled = self._preview_pixmap.scaled(
self._ui.lblPreview.width(),
self._ui.lblPreview.height(),
Qt.KeepAspectRatio,
Qt.SmoothTransformation,
)
self._ui.lblPreview.setPixmap(scaled)
示例14
def paintEvent(self, e):
"""
draw pixmap with border radius
We found two way to draw pixmap with border radius,
one is as follow, the other way is using bitmap mask,
but in our practice, the mask way has poor render effects
"""
if self._pixmap is None:
return
radius = 3
painter = QPainter(self)
painter.setRenderHint(QPainter.Antialiasing)
painter.setRenderHint(QPainter.SmoothPixmapTransform)
scaled_pixmap = self._pixmap.scaledToWidth(
self.width(),
mode=Qt.SmoothTransformation
)
size = scaled_pixmap.size()
brush = QBrush(scaled_pixmap)
painter.setBrush(brush)
painter.setPen(Qt.NoPen)
y = (size.height() - self.height()) // 2
painter.save()
painter.translate(0, -y)
rect = QRect(0, y, self.width(), self.height())
painter.drawRoundedRect(rect, radius, radius)
painter.restore()
painter.end()
示例15
def set_cover_pixmap(self, pixmap):
self._cover_label.show()
self._cover_label.setPixmap(
pixmap.scaledToWidth(self._cover_label.width(),
mode=Qt.SmoothTransformation))
示例16
def seleccionarImagen(self):
imagen, extension = QFileDialog.getOpenFileName(self, "Seleccionar imagen", getcwd(),
"Archivos de imagen (*.png *.jpg)",
options=QFileDialog.Options())
if imagen:
# Adaptar imagen
pixmapImagen = QPixmap(imagen).scaled(166, 178, Qt.KeepAspectRatio,
Qt.SmoothTransformation)
# Mostrar imagen
self.labelImagen.setPixmap(pixmapImagen)
示例17
def initUI(self):
# ===================== WIDGET QLABEL ======================
label = QLabel(self)
label.setGeometry(20, 20, 100, 100)
label.setPixmap(QPixmap(":imagenes/Python.png").scaled(100, 100, Qt.KeepAspectRatio,
Qt.SmoothTransformation))
# ================================================================
示例18
def seleccionarImagen(self):
imagen, extension = QFileDialog.getOpenFileName(self, "Seleccionar imagen", getcwd(),
"Archivos de imagen (*.png *.jpg)",
options=QFileDialog.Options())
if imagen:
# Adaptar imagen
pixmapImagen = QPixmap(imagen).scaled(112, 128, Qt.KeepAspectRatio,
Qt.SmoothTransformation)
# Mostrar imagen
self.labelImagen.setPixmap(pixmapImagen)
# ================================================================
示例19
def seleccionarImagen(self):
imagen, extension = QFileDialog.getOpenFileName(self, "Seleccionar imagen", getcwd(),
"Archivos de imagen (*.png *.jpg)",
options=QFileDialog.Options())
if imagen:
# Adaptar imagen
pixmapImagen = QPixmap(imagen).scaled(166, 178, Qt.KeepAspectRatio,
Qt.SmoothTransformation)
# Mostrar imagen
self.labelImagen.setPixmap(pixmapImagen)
示例20
def mousePressEvent(self, event):
# retrieve the label
child = self.childAt(event.pos())
if not child:
return
self.controller.mode = 'selection'
# update the creation mode to the appropriate subtype
self.controller.creation_mode = child.subtype
pixmap = QPixmap(child.pixmap().scaled(
QSize(50, 50),
Qt.KeepAspectRatio,
Qt.SmoothTransformation
))
mime_data = QtCore.QMimeData()
mime_data.setData('application/x-dnditemdata', QtCore.QByteArray())
drag = QtGui.QDrag(self)
drag.setMimeData(mime_data)
drag.setPixmap(pixmap)
drag.setHotSpot(event.pos() - child.pos() + QPoint(-3, -10))
if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction:
child.close()
else:
child.show()
示例21
def mousePressEvent(self, event):
# retrieve the label
child = self.childAt(event.pos())
if not child:
return
self.controller.mode = 'selection'
# update the creation mode to the appropriate subtype
self.controller.creation_mode = child.subtype
pixmap = QPixmap(child.pixmap().scaled(
QSize(50, 50),
Qt.KeepAspectRatio,
Qt.SmoothTransformation
))
mime_data = QtCore.QMimeData()
mime_data.setData('application/x-dnditemdata', QtCore.QByteArray())
drag = QtGui.QDrag(self)
drag.setMimeData(mime_data)
drag.setPixmap(pixmap)
drag.setHotSpot(event.pos() - child.pos() + QPoint(-3, -10))
if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction:
child.close()
else:
child.show()
示例22
def mousePressEvent(self, event):
# retrieve the label
child = self.childAt(event.pos())
if not child:
return
self.controller.mode = 'selection'
# update the creation mode to the appropriate subtype
self.controller.creation_mode = child.subtype
# we change the view if necessary:
# if it is a site, we switch the site view
# if it is anything else and we are in the site view, we switch
# to the network view
if child.subtype == 'site':
self.project.show_site_view()
else:
if self.project.view_type == 'site':
self.project.show_network_view()
pixmap = QPixmap(child.pixmap().scaled(
QSize(50, 50),
Qt.KeepAspectRatio,
Qt.SmoothTransformation
))
mime_data = QtCore.QMimeData()
mime_data.setData('application/x-dnditemdata', QtCore.QByteArray())
drag = QtGui.QDrag(self)
drag.setMimeData(mime_data)
drag.setPixmap(pixmap)
drag.setHotSpot(event.pos() - child.pos() + QPoint(-3, -10))
if drag.exec_(Qt.CopyAction | Qt.MoveAction, Qt.CopyAction) == Qt.MoveAction:
child.close()
else:
child.show()
示例23
def get_app_icon():
""" Returns Icon (QPixmap)
"""
return QPixmap(resource_path('assets/dwarf.png')).scaledToHeight(75, Qt.SmoothTransformation)
示例24
def __init__(self, *args, antialiasing=True, **kwargs):
super(Label, self).__init__(*args, **kwargs)
self.Antialiasing = antialiasing
self.setMaximumSize(200, 200)
self.setMinimumSize(200, 200)
self.radius = 100
#####################核心实现#########################
self.target = QPixmap(self.size()) # 大小和控件一样
self.target.fill(Qt.transparent) # 填充背景为透明
p = QPixmap("Data/Images/head.jpg").scaled( # 加载图片并缩放和控件一样大
200, 200, Qt.KeepAspectRatioByExpanding, Qt.SmoothTransformation)
painter = QPainter(self.target)
if self.Antialiasing:
# 抗锯齿
painter.setRenderHint(QPainter.Antialiasing, True)
painter.setRenderHint(QPainter.HighQualityAntialiasing, True)
painter.setRenderHint(QPainter.SmoothPixmapTransform, True)
# painter.setPen(# 测试圆圈
# QPen(Qt.red, 5, Qt.SolidLine, Qt.RoundCap, Qt.RoundJoin))
path = QPainterPath()
path.addRoundedRect(
0, 0, self.width(), self.height(), self.radius, self.radius)
# **** 切割为圆形 ****#
painter.setClipPath(path)
# painter.drawPath(path) # 测试圆圈
painter.drawPixmap(0, 0, p)
self.setPixmap(self.target)
#####################核心实现#########################
示例25
def doChange(self, value):
t = time()
img = self.srcImg.copy() # 复制一份
# For PyQt5
self.dll.cold(sip.unwrapinstance(img), value)
# For PySide2
# self.dll.cold(shiboken2.getCppPointer(img)[0], value)
self.imgLabel.setPixmap(QPixmap.fromImage(img).scaledToWidth(800, Qt.SmoothTransformation))
print('use time:', time() - t)
示例26
def __init__(self, caller, *args, **kwargs):
QWidget.__init__(self)
self.caller = caller
self.initLayout()
self.loadIcons()
self.refreshProposals_btn.setIcon(self.refresh_icon)
self.budgetProjection_btn.setIcon(self.list_icon)
self.timeIconLabel.setPixmap(self.time_icon.scaledToHeight(20, Qt.SmoothTransformation))
self.questionLabel.setPixmap(self.question_icon.scaledToHeight(15, Qt.SmoothTransformation))
self.loadCacheData()
示例27
def setBoxIcon(self, box, caller):
if HW_devices[self.model][0] == "TREZOR One":
box.setIconPixmap(caller.tabMain.trezorOneImg.scaledToHeight(200, Qt.SmoothTransformation))
else:
box.setIconPixmap(caller.tabMain.trezorImg.scaledToHeight(200, Qt.SmoothTransformation))
示例28
def loadIcons(self):
# Load Icons
self.ledPurpleH_icon = QPixmap(os.path.join(self.imgDir, 'icon_purpleLedH.png')).scaledToHeight(17, Qt.SmoothTransformation)
self.ledGrayH_icon = QPixmap(os.path.join(self.imgDir, 'icon_grayLedH.png')).scaledToHeight(17, Qt.SmoothTransformation)
self.ledHalfPurpleH_icon = QPixmap(os.path.join(self.imgDir, 'icon_halfPurpleLedH.png')).scaledToHeight(17, Qt.SmoothTransformation)
self.ledRedV_icon = QPixmap(os.path.join(self.imgDir, 'icon_redLedV.png')).scaledToHeight(17, Qt.SmoothTransformation)
self.ledGrayV_icon = QPixmap(os.path.join(self.imgDir, 'icon_grayLedV.png')).scaledToHeight(17, Qt.SmoothTransformation)
self.ledGreenV_icon = QPixmap(os.path.join(self.imgDir, 'icon_greenLedV.png')).scaledToHeight(17, Qt.SmoothTransformation)
self.lastBlock_icon = QPixmap(os.path.join(self.imgDir, 'icon_lastBlock.png')).scaledToHeight(15, Qt.SmoothTransformation)
self.connGreen_icon = QPixmap(os.path.join(self.imgDir, 'icon_greenConn.png')).scaledToHeight(15, Qt.SmoothTransformation)
self.connRed_icon = QPixmap(os.path.join(self.imgDir, 'icon_redConn.png')).scaledToHeight(15, Qt.SmoothTransformation)
self.connOrange_icon = QPixmap(os.path.join(self.imgDir, 'icon_orangeConn.png')).scaledToHeight(15, Qt.SmoothTransformation)
示例29
def __init__(self, resource_filename, size=None):
super().__init__(resource(resource_filename))
if size:
self.swap(
self.scaled(
size, size, Qt.KeepAspectRatio, Qt.SmoothTransformation
)
)
示例30
def _do_load_thumbnail(self):
pixmap = QPixmap(self.path)
if not pixmap.isNull():
self.icon.setPixmap(
pixmap.scaled(
48, 48, Qt.IgnoreAspectRatio, Qt.SmoothTransformation
)
)