#!/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_())
360的主頁面的顯示
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.