zoukankan      html  css  js  c++  java
  • 读Pyqt4教程,带你入门Pyqt4 _012

    颜色

    颜色是指一个代表红(Red)、绿(Green)、蓝(Blue)(RGB)强度值组合的对象,有效的RGB值在0~255之间。我们可以用多种方式定义颜色,最常用的是RGB十进制或者十六进制值。也可以使用RGBA值,表示红(Red)、绿(Green)、蓝(Blue)和透明度(Alpha)。这里我们增加了额外的信息——关于透明度。Alpha值是255表明完全不透明,0是全透明,即颜色不可见。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    # colors.py
    
    import sys, random
    from PyQt4 import QtGui, QtCore
    
    
    class Example(QtGui.QWidget):
    
        def __init__(self):
            super(Example, self).__init__()
    
            self.setGeometry(300, 300, 350, 280)
            self.setWindowTitle('Colors')
    
        def paintEvent(self, e):
    
            qp = QtGui.QPainter()
            qp.begin(self)
    
            self.drawRectangles(qp)
    
            qp.end()
    
        def drawRectangles(self, qp):
    
            color = QtGui.QColor(0, 0, 0)
            color.setNamedColor('#d4d4d4')
            qp.setPen(color)
    
            qp.setBrush(QtGui.QColor(255, 0, 0, 80))
            qp.drawRect(10, 15, 90, 60)
    
            qp.setBrush(QtGui.QColor(255, 0, 0, 160))
            qp.drawRect(130, 15, 90, 60)
    
            qp.setBrush(QtGui.QColor(255, 0, 0, 255))
            qp.drawRect(250, 15, 90, 60)
    
            qp.setBrush(QtGui.QColor(10, 163, 2, 55))
            qp.drawRect(10, 105, 90, 60)
    
            qp.setBrush(QtGui.QColor(160, 100, 0, 255))
            qp.drawRect(130, 105, 90, 60)
    
            qp.setBrush(QtGui.QColor(60, 100, 60, 255))
            qp.drawRect(250, 105, 90, 60)
    
            qp.setBrush(QtGui.QColor(50, 50, 50, 255))
            qp.drawRect(10, 195, 90, 60)
    
            qp.setBrush(QtGui.QColor(50, 150, 50, 255))
            qp.drawRect(130, 195, 90, 60)
    
            qp.setBrush(QtGui.QColor(223, 135, 19, 255))
            qp.drawRect(250, 195, 90, 60)
    
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    app.exec_()

    在例子中,我们绘制了9个有色矩形,第一行显示红色,具有不同的透明度。

    paint.setBrush(QtGui.QColor(255, 0, 0, 80));
    paint.drawRect(10, 15, 90, 60)

    这里我们定义一个画刷并绘制一个矩形,画刷从一个初级图形对象,用来绘制图形的背景。 drawRect() 方法接受四个参数。头两个是坐标轴的x和y,第三和第四个是矩形的宽高,该方法使用当前的画笔和画刷绘制一个矩形。

    QPen

    QPen 是初级图形对象,用来绘制线条、曲线和矩形、椭圆、多边形或其他形状的轮廓。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    # penstyles.py
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    
    class Example(QtGui.QWidget):
    
        def __init__(self):
            super(Example, self).__init__()
    
            self.setGeometry(300, 300, 280, 270)
            self.setWindowTitle('penstyles')
    
        def paintEvent(self, e):
    
            qp = QtGui.QPainter()
    
            qp.begin(self)
            self.doDrawing(qp)
            qp.end()
    
        def doDrawing(self, qp):
    
            pen = QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.SolidLine)
    
            qp.setPen(pen)
            qp.drawLine(20, 40, 250, 40)
    
            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)
    
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    app.exec_()

    该例子中,我们绘制了6条线,使用了不同的画笔样式。其中5个预定义样式,我们也可以创建自定义样式,最后一个使用了自定义的样式。

    pen.setStyle(QtCore.Qt.CustomDashLine)
    pen.setDashPattern([1, 4, 5, 4])
    qp.setPen(pen)

    这里我们自定义了一个画笔样式,设置 QtCore.Qt.CustomDashLine 样式,并调用 setDashPattern() 方法。用一列数字定义样式,必须是一个偶数序列,技术定义破折号,而是定义间隔,数字越大,间隔或破折号越大。我们的样式是1像素的破折号、3像素的间隔、5像素的破折号和4像素的间隔。

    QBrush

    QBrush 是初级图形对象,用来绘制图形的背景,如:矩形,椭圆或多边形。画刷有三种类型。可以是预定义的渐变或纹理图案。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    # brushes.py
    
    import sys
    from PyQt4 import QtGui, QtCore
    
    
    class Example(QtGui.QWidget):
    
        def __init__(self):
            super(Example, self).__init__()
    
            self.setGeometry(300, 300, 355, 280)
            self.setWindowTitle('Brushes')
    
        def paintEvent(self, e):
    
            qp = QtGui.QPainter()
    
            qp.begin(self)
            self.drawBrushes(qp)
            qp.end()
    
        def drawBrushes(self, qp):
    
            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)
    
    
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    app.exec_()

    该例子中,我们绘制了9个不同的矩形。

    brush = QtGui.QBrush(QtCore.Qt.SolidPattern)
    qp.setBrush(brush)
    qp.drawRect(10, 15, 90, 60)

    定义画刷对象,并设置到绘画者对象,调用 drawRect 方法绘制矩形。

    在PyQt4教程的这部分中,我们做了一些基本的绘画。

     

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4593922.html

     

     

  • 相关阅读:
    HashMap:JDK7 与 JDK8 的实现
    es简单介绍及使用注意事项
    mongo学习使用记录2 spring data
    mongo学习使用记录1
    数据库三范式
    mysql数据库中实现内连接、左连接、右连接
    JDK7与JDK8中HashMap的实现
    字符串按照相似度排序
    Linux shell 脚本小记2
    ReentrantLock源码了解
  • 原文地址:https://www.cnblogs.com/superdo/p/4593922.html
Copyright © 2011-2022 走看看