前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python pyqt5 卡通人物形状窗体

python pyqt5 卡通人物形状窗体

作者头像
用户5760343
发布2019-07-27 21:19:59
1K0
发布2019-07-27 21:19:59
举报
文章被收录于专栏:sktjsktj

-- coding: utf-8 --

""" 【简介】 不规则的,可以拖动的窗体实现例子

"""

import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPixmap, QPainter, QCursor, QBitmap from PyQt5.QtCore import Qt

class ShapeWidget(QWidget): def init(self, parent=None): super(ShapeWidget, self).init(parent) self.setWindowTitle("不规则的,可以拖动的窗体实现例子") self.mypix()

代码语言:javascript
复制
# 显示不规则 pic
def mypix(self):
    self.pix = QBitmap("./images/mask.png")
    self.resize(self.pix.size())
    self.setMask(self.pix)
    print(self.pix.size())
    self.dragPosition = None

# 重定义鼠标按下响应函数mousePressEvent(QMouseEvent)和鼠标移动响应函数mouseMoveEvent(QMouseEvent),使不规则窗体能响应鼠标事件,随意拖动。
def mousePressEvent(self, event):
    if event.button() == Qt.LeftButton:
        self.m_drag = True
        self.m_DragPosition = event.globalPos() - self.pos()
        event.accept()
        self.setCursor(QCursor(Qt.OpenHandCursor))
    if event.button() == Qt.RightButton:
        self.close()

def mouseMoveEvent(self, QMouseEvent):
    if Qt.LeftButton and self.m_drag:
        # 当左键移动窗体修改偏移值
        self.move(QMouseEvent.globalPos() - self.m_DragPosition)
        QMouseEvent.accept()

def mouseReleaseEvent(self, QMouseEvent):
    self.m_drag = False
    self.setCursor(QCursor(Qt.ArrowCursor))

# 一般 paintEvent 在窗体首次绘制加载, 要重新加载paintEvent 需要重新加载窗口使用 self.update() or  self.repaint()
def paintEvent(self, event):
    painter = QPainter(self)
    painter.drawPixmap(0, 0, self.width(), self.height(), QPixmap("./images/boy.png"))

if name == 'main': app = QApplication(sys.argv) form = ShapeWidget() form.show() app.exec_()

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • -- coding: utf-8 --
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com