360的主頁面的顯示

#!/usr/bin/python  
#-*-coding:utf-8-*-

from title_widget import *
from content_widget import *
from system_tray import *
from about_us import *
from main_menu import *
from character_widget import *
from setting_dialog import *
from  skin_widget import *
#import util

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.Qt import *

class MainWidget(QWidget):
	def __init__(self,parent = None):
	    super(MainWidget,self).__init__()
	    self.location = QRect()
	    self.title_widget= TitleWidget() #
	    self.content_widget = ContentWidget(self) #
	    self.system_tray = SystemTray(self) #
	    self.setting_dialog = SettingDialog(self) #
	    self.character_widget = CharacterWidget(self) #
	    self.about_us_dialog = AboutUsDialog(self) #
	    self.skin_name = QString("./img/skin/17_big.jpg") #
	    self.main_menu = MainMenu() #
	    self.skin_widget = SkinWidget() #
	    self.setMinimumSize(900, 600) #
	    self.setWindowIcon(QIcon("./img/safe.ico"))#
	    self.setWindowFlags(Qt.FramelessWindowHint)#
	    self.location = self.geometry() #

	    #self.is_read = Util.readInit(QString("./user.ini"), QString("skin"), skin_name)

	    #if(self.is_read):
	    #if(skin_name.isEmpty()):
	    #skin_name = QString(":/skin/17_big")
	    #else:
	    #skin_name = QString(":/skin/17_big")

	    self.center_layout =  QVBoxLayout()
	    self.center_layout.addWidget(self.content_widget)
	    self.center_layout.setSpacing(0)
	    self.center_layout.setContentsMargins(1, 0, 1, 1)

	    self.main_layout =  QVBoxLayout()
	    self.main_layout.addWidget(self.title_widget)
	    self.main_layout.addLayout(self.center_layout)
	    self.main_layout.setSpacing(0)
	    self.main_layout.setContentsMargins(0, 0, 0, 0)

	    self.setLayout(self.main_layout)

	    self.connect(self.title_widget, SIGNAL("self.showSkin()"), SLOT("self.showSkinWidget()"))
	    self.connect(self.title_widget, SIGNAL("self.showMainMenu()"), SLOT("showMainMenu()"))
	    self.connect(self.title_widget, SIGNAL("self.showMax()"), SLOT("showMax()"))
	    self.connect(self.title_widget, SIGNAL("self.showMin()"), SLOT("showMinimized()"))
	    self.connect(self.title_widget, SIGNAL("self.closeWidget()"), SLOT("hide()"))

	    self.connect(self.main_menu, SIGNAL("showSettingDialog()"), SLOT("showSettingDialog()"))
	    self.connect(self.main_menu, SIGNAL("showCharacter()"), SLOT("showCharacter()"))
	    self.connect(self.main_menu, SIGNAL("showAboutUs()"), SLOT("showAboutUs()"))

	    self.connect(self.skin_widget, SIGNAL("changeSkin(QString)"), SLOT("changeSkin(QString)"))
	    self.connect(self.system_tray, SIGNAL("activated(QSystemTrayIcon.ActivationReason)"), SLOT("iconIsActived(QSystemTrayIcon.ActivationReason)"))

	    self.system_tray.show()


	def paintEvent(self,event):# QPaintEvent *
		painter = QPainter (self)
		pixmap = QPixmap() 
		pixmap.load(self.skin_name)
		painter.drawPixmap(self.rect(), pixmap)

		painter = QPainter (self)
		pixmap = QPixmap (self.size())
		pixmap.fill()
		painter.end()
		painter.begin(pixmap)
		brush = QBrush() 
		brush.setTextureImage(QImage(self.skin_name))
		painter.setBrush(brush)
		painter.setPen(Qt.gray)
		painter.drawRect(0, 0, self.width()-1, self.height()-1)
		painter.end()
		#painter.begin(self)
		painter.drawPixmap(self.rect(),pixmap)

		painter = QPainter (self)
		painter.drawPixmap(self.rect(), QPixmap(self.skin_name))

		painter2 = QPainter (self)
		painter2.setPen(Qt.gray)
		#static const QPointF points[4] = {}
		painter2.drawPolyline(QPointF(0, 100), QPointF(0, self.height()-1), QPointF(self.width()-1, self.height()-1), QPointF(self.width()-1, 100))
		
	def showMax(self):
		self.is_max=False
		if(self.is_max):
			self.setGeometry(location)
		else:
			self.location = self.geometry()
			self.setGeometry(QApplication.desktop().availableGeometry())
		self.is_max = ~is_max
		
	def showSkinWidget(self):
		skin_widget.show()
		
	def showMainMenu(self):
		p = self.rect().topRight() #QPoint
		p.setX(p.x() - 150)
		p.setY(p.y() + 22)
		main_menu.exec_(self.mapToGlobal(p))
		
	def iconIsActived(self,reason): #QSystemTrayIcon.ActivationReason 

		if reason == QSystemTrayIcon.Trigger:
			self.showWidget()
		elif reason == QSystemTrayIcon.DoubleClick:
			self.showWidget()

	def showWidget(self):
		self.showNormal()
		self.raise_()
		self.activateWindow()
		#self.title_widget.turnPage(0)
		
	def showAboutUs(self):
		self.about_us_dialog.exec_()
		
	def showCharacter(self):
		self.character_widget.show()
		
	def showSettingDialog(self):
		self.setting_dialog.exec_()
		
	def changeSkin(self,skin_name): #QString 
		#Util.writeInit(QString("./user.ini"), QString("skin"), skin_name)
		self.skin_name = skin_name
		self.update()


if __name__ == "__main__":

    import sys

    app = QApplication(sys.argv)
    #codec = QTextCodec.codecForName("System")
    #codec.setCodecForLocale(app)
    #codec.setCodecForTr(app)
    #codec.setCodecForCStrings(app)

    translator = QTranslator(app)
    translator.load(QString("qt_zh_CN.qm"))
    app.installTranslator(translator)

    translator_zh = QTranslator(app) 
    translator_zh.load(QString("360safe_zh.qm"))
    app.installTranslator(translator_zh)
    app.setFont(QFont("Arial",9))

    main_widget = MainWidget ()
    main_widget.showWidget()

    sys.exit(app.exec_())


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章