您的位置:首页 > 编程语言 > Qt开发

pyqt实现抗锯齿不规则窗口

2016-12-21 00:00 330 查看
直接上代码,safe.png为具备alpha通道的png图片


# coding:utf-8
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import QtCore, QtGui

class MyForm(QWidget):

def mousePressEvent(self, event):

# 只能是鼠标左键移动和改变大小
if(event.button() == Qt.LeftButton):
self.mouse_press = True

# 窗口移动距离
self.move_point = event.globalPos() - self.pos()

def mouseReleaseEvent(self, event):

self.mouse_press = False

def mouseMoveEvent(self, event):

# 移动窗口
if(self.mouse_press):
self.move_pos = event.globalPos()
self.move(self.move_pos - self.move_point)

def __init__(self, parent=None):
super(MyForm, self).__init__(parent)

self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.pix = QPixmap("safe.png")
# self.resize(self.pix.size())
self.setMask(self.pix.mask())

def paintEvent(self, event):
painter = QPainter(self)
painter.drawPixmap(0, 0, self.pix.width(), self.pix.height(), self.pix)

app = QApplication([])
form = MyForm()
form.show()
app.exec_()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pyqt