博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZetCode PyQt4 tutorial basic painting
阅读量:6918 次
发布时间:2019-06-27

本文共 9124 字,大约阅读时间需要 30 分钟。

#!/usr/bin/python# -*- coding: utf-8 -*-"""ZetCode PyQt4 tutorial In this example, we draw text in Russian azbuka.author: Jan Bodnarwebsite: zetcode.com last edited: September 2011"""import sysfrom PyQt4 import QtGui, QtCoreclass Example(QtGui.QWidget):        def __init__(self):        super(Example, self).__init__()                self.initUI()            def initUI(self):              self.text = u'\u041b\u0435\u0432 \u041d\u0438\u043a\u043e\u043b\u0430\\u0435\u0432\u0438\u0447 \u0422\u043e\u043b\u0441\u0442\u043e\u0439: \n\\u0410\u043d\u043d\u0430 \u041a\u0430\u0440\u0435\u043d\u0438\u043d\u0430'        self.setGeometry(300, 300, 280, 170)        self.setWindowTitle('Draw text')        self.show()    # Drawing is done within the paint event.    def paintEvent(self, event):        # The QtGui.QPainter class is responsible for all the low-level painting. All the painting methods go between begin() and end() methods. The actual painting is delegated to the drawText() method.        qp = QtGui.QPainter()        qp.begin(self)        self.drawText(event, qp)        qp.end()            def drawText(self, event, qp):              qp.setPen(QtGui.QColor(168, 34, 3))        qp.setFont(QtGui.QFont('Decorative', 10))        # The drawText() method draws text on the window. The rect() method of the paint event returns the rectangle that needs to be updated.        qp.drawText(event.rect(), QtCore.Qt.AlignCenter, self.text)                                def main():        app = QtGui.QApplication(sys.argv)    ex = Example()    sys.exit(app.exec_())if __name__ == '__main__':    main()--------------------------------------------------------------------------------#!/usr/bin/python# -*- coding: utf-8 -*-"""ZetCode PyQt4 tutorial In the example, we draw randomly 1000 red points on the window.author: Jan Bodnarwebsite: zetcode.com last edited: September 2011"""import sys, randomfrom PyQt4 import QtGui, QtCoreclass Example(QtGui.QWidget):        def __init__(self):        super(Example, self).__init__()                self.initUI()            def initUI(self):              self.setGeometry(300, 300, 280, 170)        self.setWindowTitle('Points')        self.show()    def paintEvent(self, e):        qp = QtGui.QPainter()        qp.begin(self)        self.drawPoints(qp)        qp.end()            def drawPoints(self, qp):              # We set the pen to red colour. We use a predefined QtCore.Qt.red colour constant.        qp.setPen(QtCore.Qt.red)        # Each time we resize the window, a paint event is generated. We get the current size of the window with the size() method. We use the size of the window to distribute the points all over the client area of the window.        size = self.size()                for i in range(1000):            x = random.randint(1, size.width()-1)            y = random.randint(1, size.height()-1)            # We draw the point with the drawPoint() method.            qp.drawPoint(x, y)                             def main():        app = QtGui.QApplication(sys.argv)    ex = Example()    sys.exit(app.exec_())if __name__ == '__main__':    main()--------------------------------------------------------------------------------#!/usr/bin/python# -*- coding: utf-8 -*-"""ZetCode PyQt4 tutorial This example draws three rectangles in threedifferent colours. author: Jan Bodnarwebsite: zetcode.com last edited: September 2011"""import sysfrom PyQt4 import QtGui, QtCoreclass Example(QtGui.QWidget):        def __init__(self):        super(Example, self).__init__()                self.initUI()            def initUI(self):              self.setGeometry(300, 300, 350, 100)        self.setWindowTitle('Colours')        self.show()    def paintEvent(self, e):        qp = QtGui.QPainter()        qp.begin(self)        self.drawRectangles(qp)        qp.end()            def drawRectangles(self, qp):              # Here we define a colour using a hexadecimal notation.        color = QtGui.QColor(0, 0, 0)        color.setNamedColor('#d4d4d4')        qp.setPen(color)        # Here we define a brush and draw a rectangle. A brush is an elementary graphics object which is used to draw the background of a shape. The drawRect() method accepts four parameters. The first two are x and y values on the axis. The third and fourth parameters are the width and height of the rectangle. The method draws the rectangle using the current pen and brush.        qp.setBrush(QtGui.QColor(200, 0, 0))        qp.drawRect(10, 15, 90, 60)        qp.setBrush(QtGui.QColor(255, 80, 0, 160))        qp.drawRect(130, 15, 90, 60)        qp.setBrush(QtGui.QColor(25, 0, 90, 200))        qp.drawRect(250, 15, 90, 60)                      def main():        app = QtGui.QApplication(sys.argv)    ex = Example()    sys.exit(app.exec_())if __name__ == '__main__':    main()--------------------------------------------------------------------------------#!/usr/bin/python# -*- coding: utf-8 -*-"""ZetCode PyQt4 tutorial In this example we draw 6 lines usingdifferent pen styles. author: Jan Bodnarwebsite: zetcode.com last edited: September 2011"""import sysfrom PyQt4 import QtGui, QtCoreclass Example(QtGui.QWidget):        def __init__(self):        super(Example, self).__init__()                self.initUI()            def initUI(self):              self.setGeometry(300, 300, 280, 270)        self.setWindowTitle('Pen styles')        self.show()    def paintEvent(self, e):        qp = QtGui.QPainter()        qp.begin(self)        self.drawLines(qp)        qp.end()            def drawLines(self, qp):              # We create a QtGui.QPen object. The colour is black. The width is set to 2 pixels so that we can see the differences between the pen styles. The QtCore.Qt.SolidLine is one of the predefined pen styles.        pen = QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.SolidLine)        qp.setPen(pen)        qp.drawLine(20, 40, 250, 40)        # Here we define a custom pen style. We set a QtCore.Qt.CustomDashLine pen style and call the setDashPattern() method. The list of numbers defines a style. There must be an even number of numbers. Odd numbers define a dash, even numbers space. The greater the number, the greater the space or the dash. Our pattern is 1px dash, 4px space, 5px dash, 4px space etc.        pen.setStyle(QtCore.Qt.DashLine)        qp.setPen(pen)        qp.drawLine(20, 80, 250, 80)        pen.setStyle(QtCore.Qt.DashDotLine)        qp.setPen(pen)        qp.drawLine(20, 120, 250, 120)        pen.setStyle(QtCore.Qt.DotLine)        qp.setPen(pen)        qp.drawLine(20, 160, 250, 160)        pen.setStyle(QtCore.Qt.DashDotDotLine)        qp.setPen(pen)        qp.drawLine(20, 200, 250, 200)        pen.setStyle(QtCore.Qt.CustomDashLine)        pen.setDashPattern([1, 4, 5, 4])        qp.setPen(pen)        qp.drawLine(20, 240, 250, 240)                      def main():        app = QtGui.QApplication(sys.argv)    ex = Example()    sys.exit(app.exec_())if __name__ == '__main__':    main()--------------------------------------------------------------------------------#!/usr/bin/python# -*- coding: utf-8 -*-"""ZetCode PyQt4 tutorial This example draws 9 rectangles in differentbrush styles.author: Jan Bodnarwebsite: zetcode.com last edited: September 2011"""import sysfrom PyQt4 import QtGui, QtCoreclass Example(QtGui.QWidget):        def __init__(self):        super(Example, self).__init__()                self.initUI()            def initUI(self):              self.setGeometry(300, 300, 355, 280)        self.setWindowTitle('Brushes')        self.show()    def paintEvent(self, e):        qp = QtGui.QPainter()        qp.begin(self)        self.drawBrushes(qp)        qp.end()            def drawBrushes(self, qp):              # We define a brush object. We set it to the painter object and draw the rectangle by calling the drawRect() method.        brush = QtGui.QBrush(QtCore.Qt.SolidPattern)        qp.setBrush(brush)        qp.drawRect(10, 15, 90, 60)        brush.setStyle(QtCore.Qt.Dense1Pattern)        qp.setBrush(brush)        qp.drawRect(130, 15, 90, 60)        brush.setStyle(QtCore.Qt.Dense2Pattern)        qp.setBrush(brush)        qp.drawRect(250, 15, 90, 60)        brush.setStyle(QtCore.Qt.Dense3Pattern)        qp.setBrush(brush)        qp.drawRect(10, 105, 90, 60)        brush.setStyle(QtCore.Qt.DiagCrossPattern)        qp.setBrush(brush)        qp.drawRect(10, 105, 90, 60)        brush.setStyle(QtCore.Qt.Dense5Pattern)        qp.setBrush(brush)        qp.drawRect(130, 105, 90, 60)        brush.setStyle(QtCore.Qt.Dense6Pattern)        qp.setBrush(brush)        qp.drawRect(250, 105, 90, 60)        brush.setStyle(QtCore.Qt.HorPattern)        qp.setBrush(brush)        qp.drawRect(10, 195, 90, 60)        brush.setStyle(QtCore.Qt.VerPattern)        qp.setBrush(brush)        qp.drawRect(130, 195, 90, 60)        brush.setStyle(QtCore.Qt.BDiagPattern)        qp.setBrush(brush)        qp.drawRect(250, 195, 90, 60)                      def main():        app = QtGui.QApplication(sys.argv)    ex = Example()    sys.exit(app.exec_())if __name__ == '__main__':    main()

 

转载于:https://www.cnblogs.com/zengjfgit/p/4851880.html

你可能感兴趣的文章
从品钛IPO看,如何判断一家金融科技公司的科技底色
查看>>
C语言基础——循环详解!
查看>>
基于 OpenResty 的 API 网关 Orange 正式发布 0.7 版本
查看>>
从零开始学设计模式(六)—适配器模式(Adapter Pattern)
查看>>
基于tensorflow的一元二次方程回归预测
查看>>
CNCC 2018 经典计算机算法技术论坛全解读 | CNCC 2018
查看>>
小程序UI框架minui
查看>>
26个精选的JavaScript面试问题
查看>>
零基础Python学习路线图,小白的进阶之路!
查看>>
swift4.0 CAKeyframeAnimation动画使用
查看>>
Python3入门机器学习 - 模型泛化
查看>>
检测浏览器支持css3D转换
查看>>
我来悟微服务(2)-惊魂一刻
查看>>
Django学习笔记-Ajax
查看>>
Java 12 / JDK 12 正式发布
查看>>
分享一个 计算机网络基础知识的总结导图——系统架构师考试在路上
查看>>
IBM 向所有云平台开放旗下 Watson AI 服务
查看>>
OkHttp3源码解析(一)之请求流程
查看>>
微服务框架 Micronaut 1.1.0 发布 RC2 候选版
查看>>
DiQuick Web UI 框架 V1.3 正式版发布
查看>>