pyqt4教程之实现半透明的天气预报界面示例

488次阅读  |  发布于5年以前

复制代码 代码如下:

-- coding: cp936 --

import sys
import urllib2
import json
from PyQt4 import QtCore, QtGui
class MyWindow( QtGui.QLCDNumber,QtGui.QWidget):
def init(self, parent=None):
super(MyWindow,self).init(parent)

    self.setWindowTitle("weather")  
    self.resize(100,40)  
    self.setNumDigits(0)  
    self.setWindowFlags(QtCore.Qt.FramelessWindowHint)  
    self.setWindowOpacity(0.5)   
    url ='http://m.weather.com.cn/data/101090502.html'  
    re = urllib2.urlopen(url).read()  
    we = json.loads(re)['weatherinfo']  
    label1 = QtGui.QLabel( we['city'] )  
    label2 = QtGui.QLabel( we['date'] )  
    label3 = QtGui.QLabel( we['week'] )  
    label4 = QtGui.QLabel( we['temp1'])  
    label5 = QtGui.QLabel( we['weather1'] )  
    #---------添加表格布局  
    gridLayout = QtGui.QGridLayout()  

    gridLayout.addWidget( label1 , 0, 0 )  
    gridLayout.addWidget( label2 , 0, 1 )  
    gridLayout.addWidget( label3 , 0, 2 )  
    gridLayout.addWidget( label4 , 0, 3 )  
    gridLayout.addWidget( label5 , 0, 4 )  

    self.setLayout( gridLayout )  
def mousePressEvent(self,event):    
    if event.button()==QtCore.Qt.LeftButton:    
        self.dragPosition=event.globalPos()-self.frameGeometry().topLeft()    
        event.accept()    
    if event.button()==QtCore.Qt.RightButton:    
        self.close()    

def mouseMoveEvent(self,event):    
    if event.buttons() & QtCore.Qt.LeftButton:    
        self.move(event.globalPos()-self.dragPosition)    
        event.accept()    

app = QtGui.QApplication( sys.argv )
demo = MyWindow()
demo.show()
app.exec_()

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8