建立了一个MainWindow,创建最基本的菜单栏、状态栏、工具栏,并重新定义了“X”关闭的默认行为。,mainwindow重新定义,# -*- coding


# -*- coding: utf-8 -*-import sysfrom PyQt4 import QtGuifrom PyQt4 import QtCoreclass 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_()

评论关闭