#coding=gbk

from PyQt4 import QtGui,QtCore

import random

class MyWidget(QtGui.QWidget):

def __init__(self,parent=None):

if parent is None:

self.app=QtGui.QApplication([])

super(MyWidget,self).__init__(parent)

self.setToolTip('双击控件改变线条颜色'.decode('gbk'))

if parent is None:

self.show()

self.app.exec_()

def paintEvent(self,event):

colors=[QtCore.Qt.blue,QtCore.Qt.black,QtCore.Qt.red,

QtCore.Qt.green,QtCore.Qt.darkRed,QtCore.Qt.yellow]

p=QtGui.QPainter(self)

p.setPen(QtGui.QColor(colors[random.randint(0,5)]))

p.drawLine(0,0,self.width(),self.height())

p.save()

def mouseDoubleClickEvent(self,event):

self.repaint()

class TestMyWidget(QtGui.QWidget):

def __init__(self,parent=None):

self.app=QtGui.QApplication([])

super(TestMyWidget,self).__init__(parent)

self.setGeometry(200,300,200,300)

self.setWindowTitle('自制控件试验'.decode('gbk'))

layv=QtGui.QVBoxLayout()

self.setLayout(layv)

gp=QtGui.QGroupBox()

layv.addWidget(gp)

laygp=QtGui.QGridLayout()

gp.setLayout(laygp)

mw=MyWidget(gp)

laygp.addWidget(mw)

btn=QtGui.QPushButton('Ok')

btn.clicked.connect(self.close)

layv.addWidget(btn)

self.show()

self.app.exec_()

if __name__=='__main__':

TestMyWidget()

MyWidget【简单自制控件】的更多相关文章

  1. CSharpGL(45)自制控件的思路

    CSharpGL(45)自制控件的思路 +BIT祝威+悄悄在此留下版了个权的信息说: 本文介绍CSharpGL实现自制控件的方法. 所谓自制控件,就是用纯OpenGL模仿WinForm里的Button ...

  2. UWP入门(八)--几个简单的控件

    原文:UWP入门(八)--几个简单的控件 每天看几个,要不聊几天我就可以看完啦,加油! 看效果 1. CheckBox <TextBlock Grid.Row="0" Tex ...

  3. ASP.NET自定义控件组件开发 第一章 第一章:从一个简单的控件谈起

    第一章:从一个简单的控件谈起 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第三 ...

  4. Swift学习之函数和简单地控件的创建

     今天还是重复昨天做的事情--敲代码,但唯一的不同就是所学的知识不同了,我们又进一步往深得层次学习了,感觉越来越有意思了,虽然临近结束了看着大家积极性越来越低了,但是我知道我不能这样,我要比别人付出的 ...

  5. 【AngularJS学习笔记】封装一些简单的控件(封装成Html标签)

    bootstrap有强大的指令系统,可以自定义一些属性,基本知识请移步:http://angularjs.cn/A00r  http://www.cnblogs.com/lvdabao/p/33916 ...

  6. Win32编程点滴3 - 简单ActiveX控件的使用

    虽然这里一片的.net气氛,到处充斥着像MVC.WPF.WorkFlow.LINQ等各种niubility的术语.但我们使用的Windows还是由COM技术主宰着:我们在选择日常使用的软件时,也会避免 ...

  7. Android 简单实现控件的拖动

    控件的拖动,使用到一个监听事件 setOnTouchListener:XML代码: <?xml version="1.0" encoding="utf-8" ...

  8. 使用 xlue 实现简单 listbox 控件

    基于 XLUE 实现的 listbox 控件 1. 提供增删查接口,将 obj 作为子控件添加到列表: 2. 提供 Attach/Detach 方法,可以将子控件的事件转发出来: 3. 支持滚动条: ...

  9. 简单label控件 自制

    using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...

随机推荐

  1. C++中的对象数组

    类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性. 当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法. 例如,一个班有50个学生,我们定义了一个学生 ...

  2. [AngularJS] Angular 1.5 multiple transclude

    If you know ui-router, multi-transclude should be easy for you also. In previou Angular version < ...

  3. HeadFirst设计模式 之 C++实现(二):Observer(观察者模式)

    观察者模式是最经常使用的设计模式之中的一个,[对象之间多对一的依赖关系,当一个对象发生变化时,其会通知全部依赖它的对象].拿订阅报纸和发行报社打例如,报社採集到news制作新的报纸,派送给订阅的客户. ...

  4. CSS3 之 box-shadow

    1. css3 box-shadow CSS3的box-shadow属性可以让我们轻松实现图层阴影效果 box-shadow:  inset(可选 默认没有) x-offset    y-offset ...

  5. JavaScript获取元素样式

    原生的JavaScript获取写在标签内部的样式很简单: <div class="test" id="test" style="width:10 ...

  6. C#中public、private、protected、internal、protected internal (转载)

    在C#语言中,共有五种访问修饰符:public.private.protected.internal.protected internal.作用范围如下表:访问修饰符 说明public 公有访问.不受 ...

  7. (转).net开发者对android第二周的学习体会

    这一周相对没有春节时这么闲了,白天也比较多的工作要做,每天晚上又要被我三岁的女儿折腾到十点, 实在没有多少时间学习.在前一周的基础上,这周我试着自己练习写了一个个人管理的android的程序,主要实现 ...

  8. Android -------- API等级

      API等级 Android版本 代号名称(基本上是按ABC命名排序的) 注释说明 1 Android 1.0     2 Android 1.1 Petit Four   3 Android 1. ...

  9. SQL Server链接MySQL实践

    最近在访问多数据库的时候进行了SQLServer链接MySQL数据的实践,现总结如下: 一.  安装mysql-connector-odbc驱动: 1. 在SQL Server服务器的机器上安装mys ...

  10. Windows命令行(DOS命令)教程-8 (转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_7.html

    15. pass [功能] 设定DOS寻找.COM..EXE..BAT文件的所在目录 [格式] path=[[drive:]path[;-]]或path [说明] 只打path没有参数时,只显示环境变 ...