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):
	closeWidget = pyqtSignal()
	
	def __init__(self,parent = None):
		super(MainWidget,self).__init__()
		self.location = QRect()
		self.title_widget= TitleWidget(self) #
		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.closeWidget.connect(self.close)
		#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)


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


		self.setLayout(main_layout)


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


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


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


		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)
		painter2.drawPolyline(QPointF(0, 100), QPointF(0, self.height()-1), QPointF(self.width()-1, self.height()-1), QPointF(self.width()-1, 100))
	
	@pyqtSlot()	
	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
	
	@pyqtSlot()	
	def showSkinWidget(self):
		self.skin_widget.show()
	
	@pyqtSlot()	
	def showMainMenu(self):
		p = self.rect().topRight() #QPoint
		p.setX(p.x() - 150)
		p.setY(p.y() + 22)
		self.main_menu.exec_(self.mapToGlobal(p))
	
	@pyqtSlot()	
	def iconIsActived(self,reason): #QSystemTrayIcon.ActivationReason 


		if reason == QSystemTrayIcon.Trigger:
			self.showWidget()
		elif reason == QSystemTrayIcon.DoubleClick:
			self.showWidget()
	
	@pyqtSlot()
	def showWidget(self):
		self.showNormal()
		self.raise_()
		self.activateWindow()
		self.title_widget.turnPage(0)
	
	@pyqtSlot()	
	def showAboutUs(self):
		self.about_us_dialog.exec_()
	
	@pyqtSlot()	
	def showCharacter(self):
		self.character_widget.show()
	
	@pyqtSlot()	
	def showSettingDialog(self):
		self.setting_dialog.exec_()
	
	@pyqtSlot()	
	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_())




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值