建立了一个MainWindow,创建最基本的菜单栏、状态栏、工具栏,并重新定义了“X”关闭的默认行为。
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
from PyQt4 import QtCore
class Icon(QtGui.QMainWindow):
def __init__(self, parent=None):
super(Icon, self).__init__(parent)
# MenuBar
menubar = self.menuBar()
file = menubar.addMenu('文件')
fileopen = file.addAction('打开')
fileopen.setStatusTip('打开文件')
filexit = file.addAction('退出')
filexit.setShortcut('Ctrl+Q')
self.connect(filexit, QtCore.SIGNAL('triggered()'), self.exit)
self.setMenuBar(menubar)
# ToolBar
editToolbar = self.addToolBar('设置')
newTool = editToolbar.addAction(QtGui.QIcon('new.png'), '新建')
saveTool = editToolbar.addAction(QtGui.QIcon('save.png'), '保存')
self.connect(saveTool, QtCore.SIGNAL('triggered()'), self.save)
exit = QtGui.QPushButton('Exit', self)
exit.setGeometry(30, 100, 50, 30)
exit.setToolTip('点击按钮关闭窗口')
self.connect(exit, QtCore.SIGNAL('clicked()'), self.exit)
# 设置窗口大小已经位置
self.resize(350, 250)
self.center()
self.statusBar().showMessage('准备就绪')
self.setWindowIcon(QtGui.QIcon('logo.png'))
self.setWindowTitle('PyQt4 Demo')
def closeEvent(self, event):
replay = QtGui.QMessageBox.question(
self, '温馨提示', '是否确定关闭窗口', QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if replay == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
def save(self):
replay = QtGui.QMessageBox.question(
self, '温馨提示', '是否进行保存', QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
def exit(self):
sys.exit(0)
def center(self):
screenGeometry = QtGui.QDesktopWidget().screenGeometry()
size = self.geometry()
self.move((screenGeometry.width() - size.width()) / 2,
(screenGeometry.height() - size.height()) / 2)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
icon = Icon()
icon.show()
app.exec_()