PyQt4 初试牛刀一
建立了一个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 初试牛刀一的更多相关文章
- PyQt4 初试牛刀二
一.最小话托盘后,调用showNormal()后窗口不刷新,解决办法如下: 重写showNormal 方法,调用父类方法后,repaint窗体 def showNormal(self): su ...
- redis初试牛刀
先来无事就学学redis.可是并没有想的那么美好.首先要解释一下,redis主流是安装在lunx系统中的,甚至官网直接没有给出windows版本.要下载windows只能去所谓的githup.好吧我在 ...
- python初试牛刀
需求:在L7的一台机器上做nginx配置,然后代码分发到别的所有的机器上.由于目录中有很多配置文件,而且防止误操作,需要修改配置之前先备份原配置.然后需要在运行修改配置的脚本之前,先弹出界面,告知操作 ...
- 周末充电之WPF(一).初试牛刀
追的剧已经赶上更新的速度了,突然觉得一下子就闲了.趁着这点时间,刚好学点 WPF .看到这边,好多人估计得感叹技术宅约等于单身狗,哈哈.好了,赶紧进入学习状态. 关注 WPF 或者说对它感兴趣其实多半 ...
- HBase 2、HBase安装与初试牛刀
官方帮助文档:http://hbase.apache.org/book.html PDF:http://hbase.apache.org/apache_hbase_reference_guide.p ...
- iOS 视图调试器(Debug View Hierarchy) 之 初试牛刀
参考:http://blog.csdn.net/th_gsb/article/details/44856795 由于iOS的界面开发大多都是用代码实现的,编写的时候,那就是看不见摸不着的情况.所以,如 ...
- [学习OpenCV攻略][003[初试牛刀——显示图片]
cvLoadImage(路径) 加载指定路径的图片到内存 cvNamedWindow("窗口名称", 属性) 创建窗口,窗口名称用来被其他函数引用,属性:0表示窗口大小不变,CV_ ...
- OpenCV:初试牛刀-带滚动条的视频播放-2
视频播放时点击窗口关闭按钮(即小叉号)关闭窗口 隐藏console控制台 使用VideoCapture和createTrackbar实现滚动条控制视频播放 #include<iostream&g ...
- OpenCV:初试牛刀-显示图像-1
OpenCV开发包提供了读取各种类型的图像文件.视频内容以及摄像机输入的功能.这些功能是OpenCV开发包所包含的HighGUI工具集的一部分. 先看两个小例子: #include"open ...
随机推荐
- javaSE 第77节课
1.InetAddress InetAddress是地址的封装类,也可通过它来获得当前的操作地址(1)获得电脑当前上网的IP地址 (2)与服务器连接操作 (3) 二.MD5加密文件 文件本地秒传操作例 ...
- ConcurrentLinkedQueue 源码 since java1.5
1 父类 java.lang.Object 继承者 java.util.AbstractCollection<E> 继承者 java.util.AbstractQueue<E> ...
- nyoj_1022:合纵连横(并查集删点)
题目链接 参考链接 只附代码好了 #include<bits/stdc++.h> using namespace std; ; int a[N],b[N],vis[N]; int n,m, ...
- php 删除指定文件夹
php 删除指定文件夹 1.前言 目标:php删除一个指定目录 所使用的的php函数:is_dir,opendir,readdir,scandir,rmdir,closedir,等等(注:其他文件操作 ...
- centos7 ssh免密码登录
单机测试 1,设置/etc/hosts 添加主机及ip 2,修改/etc/sysconfig/network NETWORKING=yesNETWORING_IPV6=yesHOSTNAME=mast ...
- kibana 常用查询方法
下面直接通过实例演示常用的搜索方法 转义特殊字符 + - && || ! () {} [] ^" ~ * ? : \ 注意:以上字符当作值搜索的时候需要用 \ 转义 1.在任 ...
- PHP将数据导出Excel表中(投机型)
1.简介 如何利用最简单粗糙暴力的方法将数据写入Excel文件中呢? 因为ms word和excel的文档都支持html文本格式,因此我们可以基于这个原理采用html文本格式进行数据的输出. 在htm ...
- [Tyvj模拟赛]运
运 题目 [问题背景]zhx 和妹子们玩数数游戏. [问题描述] 仅包含4或7的数被称为幸运数.一个序列的子序列被定义为从序列中删去若干个数, 剩下的数组成的新序列.两个子序列被定义为不同的当且仅当其 ...
- Codeforces 556 A Case of the Zeros and Ones
A. Case of the Zeros and Ones time limit per test 1 second memory limit per test 256 megabytes input ...
- Python Socket 简单聊天室2
上篇文章写了一个简单的单线程的一问一答的简单聊天室.这次我们使用SocketServer模块搭建一个多线程异步的聊天室. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...