首页 > 代码库 > qt反走样(简选)
qt反走样(简选)
# -*- coding: utf-8 -*-
# python:2.x
__author__ = ‘Administrator‘
#qt反走样(简选)
#概念
"""
在光栅图形显示器上绘制非水平、非垂直的直线或多边形边界时,或多或少会呈现锯齿
状外观。这是因为直线和多边形的边界是连续的,而光栅则是由离散的点组成。在光栅显示
设备上表现直线、多边形等,必须在离散位置采样。由于采样不充分重建后造成的信息失真,
就叫走样;用于减少或消除这种效果的技术,就称为反走样
"""
#说明:反走样是图形学中的重要概念,用以防止“锯齿”现象的出现。很多系统的绘图API里面都会内置了反走样的算法,不过默认一般都是关闭的
from PyQt4.QtGui import *
from PyQt4.Qt import *
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import *
import sys
class Painterd(QWidget):
def __init__(self):
super(Painterd,self).__init__()
self.resize(800,600)
self.setWindowTitle(‘paint‘)
#画笔
def paintEvent(self, e):
paint=QPainter(self)
paint.setPen(QPen(Qt.black,5,Qt.DashDotDotLine,Qt.RoundCap))#创建了一个黑色 5像素宽的画笔,使用了点线的样式,圆形笔帽
paint.setBrush(Qt.yellow)
paint.drawEllipse(50,150,200,150)
paint.setRenderHint(paint.Antialiasing,True)#Antialiasing 属性(也就是反走样)设置为True,就打开了 QPainter 的反走样功能。还记得我们曾经说过
paint.setPen(QPen(Qt.black,5,Qt.DashDotDotLine,Qt.RoundCap))
paint.setBrush(Qt.yellow)
paint.drawEllipse(300,150,200,150)
def main():
app = QtGui.QApplication(sys.argv)
ex =Painterd()
ex.show()
sys.exit(app.exec_())
if __name__ == ‘__main__‘:
main()
#更多学习内容:http://devbean.blog.51cto.com/448512/237447/
如图: