MyWidget【簡單自製控制項】

來源:互聯網
上載者:User

標籤:blog   http   color   os   io   ar   2014   log   

#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()

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.