建立了一个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_()

PyQt4 初试牛刀一的更多相关文章

  1. PyQt4 初试牛刀二

    一.最小话托盘后,调用showNormal()后窗口不刷新,解决办法如下: 重写showNormal 方法,调用父类方法后,repaint窗体 def showNormal(self):     su ...

  2. redis初试牛刀

    先来无事就学学redis.可是并没有想的那么美好.首先要解释一下,redis主流是安装在lunx系统中的,甚至官网直接没有给出windows版本.要下载windows只能去所谓的githup.好吧我在 ...

  3. python初试牛刀

    需求:在L7的一台机器上做nginx配置,然后代码分发到别的所有的机器上.由于目录中有很多配置文件,而且防止误操作,需要修改配置之前先备份原配置.然后需要在运行修改配置的脚本之前,先弹出界面,告知操作 ...

  4. 周末充电之WPF(一).初试牛刀

    追的剧已经赶上更新的速度了,突然觉得一下子就闲了.趁着这点时间,刚好学点 WPF .看到这边,好多人估计得感叹技术宅约等于单身狗,哈哈.好了,赶紧进入学习状态. 关注 WPF 或者说对它感兴趣其实多半 ...

  5. HBase 2、HBase安装与初试牛刀

    官方帮助文档:http://hbase.apache.org/book.html  PDF:http://hbase.apache.org/apache_hbase_reference_guide.p ...

  6. iOS 视图调试器(Debug View Hierarchy) 之 初试牛刀

    参考:http://blog.csdn.net/th_gsb/article/details/44856795 由于iOS的界面开发大多都是用代码实现的,编写的时候,那就是看不见摸不着的情况.所以,如 ...

  7. [学习OpenCV攻略][003[初试牛刀——显示图片]

    cvLoadImage(路径) 加载指定路径的图片到内存 cvNamedWindow("窗口名称", 属性) 创建窗口,窗口名称用来被其他函数引用,属性:0表示窗口大小不变,CV_ ...

  8. OpenCV:初试牛刀-带滚动条的视频播放-2

    视频播放时点击窗口关闭按钮(即小叉号)关闭窗口 隐藏console控制台 使用VideoCapture和createTrackbar实现滚动条控制视频播放 #include<iostream&g ...

  9. OpenCV:初试牛刀-显示图像-1

    OpenCV开发包提供了读取各种类型的图像文件.视频内容以及摄像机输入的功能.这些功能是OpenCV开发包所包含的HighGUI工具集的一部分. 先看两个小例子: #include"open ...

随机推荐

  1. Haproxy的配置

    1,下载Haproxy 下载Haproxy 1.6  2,安装haproxy uname -r cd /usr/local/src/haproxy-1.6.9/ make TARGET=linux31 ...

  2. python函数(1):初始函数

    在学了前面很多python的基础类型后,我们终于可以进入下一阶段,今天我们将走进一个函数的新世界. 预习: 1.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数 2.写函数, ...

  3. ionic2+Angular ionScroll页面滑动监听

    第一:需要在组件中引入相关模块: 第二:如果只是监听页面滑动,只需要标注@ViewChild(Content) content: Content;就可以了. 附加:如果要监听页面的某个元素,并对其进行 ...

  4. (转)eclipse安装jetty

    背景:在项目开发的过程中,一个老的项目使用的是jetty启动,在用tomcat启动的过程中出现了启动不了的异常,浪费了好多时间.因为项目一直是用jetty启动的,为了不浪费时间,也只好改变思路选择je ...

  5. listView属性随笔--不断增加中。

    对于一个控件的认识总是会随着时间的推移,而变的逐渐深刻. 简单的就 android:layout_height:属性来说给的数值不同就会有不同的效果,有些时候你根本想不到是跟这个属性的设置有关. 有时 ...

  6. Swift学习之构造方法

    定义 构造过程是为了使用某个类.结构体或枚举类型的实例进行的准备过程.这个过程包含了为实例中的每个属性设置初始值和为其执行必要的准备和初始化任务. 构造方法可以被归结为指定构造方法与遍历构造方法,在S ...

  7. Vue学习记录第一篇——Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  8. Uva 10142 Australia Voting

    水题 模拟 大意就是模拟一个选举的系统 认真读题,注意细节,耐心调试 #include<cmath> #include<math.h> #include<ctype.h& ...

  9. 求m区间内的最小值

    洛谷P1440 求m区间内的最小值 ............................................................................... 以上 ...

  10. ASP.NET程序运行出现WebDev.WebServer40.exe已停止工作解决方法(netsh winsock reset)

    问题描述:在开发系统时候运行程序突然报出"WebDev.WebServer40.exe已停止工作"的错误,程序调试运行,发现程序在打开数据库时候报错,也就是Connection.O ...