PyQt4 初试牛刀二
一、最小话托盘后,调用showNormal()后窗口不刷新,解决办法如下:
重写showNormal 方法,调用父类方法后,repaint窗体
def showNormal(self):
super(LcdTime, self).showNormal()
self.repaint()
二、透明显示窗口后无法拖动窗体:
必须拖动非透明区域,比如数字,目前没有找到好的解决方案。

# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtCore, QtGui
class LcdTime(QtGui.QDialog):
def __init__(self, parent=None):
super(LcdTime, self).__init__(parent)
self.hour = QtGui.QLCDNumber(8, self)
self.hour.setGeometry(10, 10, 200, 80)
self.hour.setSegmentStyle(QtGui.QLCDNumber.Flat)
self.display()
self.timer = QtCore.QTimer()
self.connect(self.timer, QtCore.SIGNAL('timeout()'), self.display)
self.timer.start(1000)
self.build_tray()
self.resize(220, 100)
self.central()
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
# 透明处理,移动需要拖动数字
self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)
self.setMouseTracking(True)
def mousePressEvent(self, event):
if event.button() == QtCore.Qt.LeftButton:
self.dragPosition = event.globalPos() - self.frameGeometry().topLeft()
event.accept()
def mouseMoveEvent(self, event):
if event.buttons() == QtCore.Qt.LeftButton:
self.move(event.globalPos() - self.dragPosition)
event.accept()
def build_tray(self):
trayIcon = QtGui.QSystemTrayIcon(self)
trayIcon.setIcon(QtGui.QIcon('logo.png'))
trayIcon.show()
trayIcon.setToolTip('时钟')
trayIcon.activated.connect(self.trayClick)
menu = QtGui.QMenu()
normalAction = menu.addAction('正常显示')
miniAction = menu.addAction('最小化托盘')
exitAction = menu.addAction('退出')
normalAction.triggered.connect(self.showNormal)
exitAction.triggered.connect(self.exit)
miniAction.triggered.connect(self.showMinimized)
trayIcon.setContextMenu(menu)
def exit(self):
# 不设置Visible为False,退出后TrayIcon不会刷新
self.setVisible(False)
sys.exit(0)
def trayClick(self, reason):
if reason == QtGui.QSystemTrayIcon.DoubleClick:
self.showNormal()
self.repaint()
def display(self):
current = QtCore.QTime.currentTime()
self.hour.display(current.toString('HH:mm:ss'))
def showNormal(self):
super(LcdTime, self).showNormal()
self.repaint()
def central(self):
screen = QtGui.QDesktopWidget().screenGeometry()
size = self.geometry()
self.move(screen.width() - size.width(), 0)
app = QtGui.QApplication(sys.argv)
lcd = LcdTime()
lcd.show()
sys.exit(app.exec_())PyQt4 初试牛刀二的更多相关文章
- PyQt4 初试牛刀一
建立了一个MainWindow,创建最基本的菜单栏.状态栏.工具栏,并重新定义了"X"关闭的默认行为. # -*- coding: utf-8 -*- import sys fro ...
- 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 ...
随机推荐
- 玩玩微信公众号Java版之准备
微信自2013年流行起来,现在的发展已经超过了我们的想象,那么对应的公众平台,小程序等都是让人眼前一亮的东西,这里来学习一下微信工作号的对接,实现为Java,希望大家一起学习! 这里大概描述一下所 ...
- ES6——块级作用域
前面的话 过去,javascript缺乏块级作用域,var声明时的声明提升.属性变量等行为让人困惑.ES6的新语法可以帮助我们更好地控制作用域.本文将详细介绍ES6新引入的块级作用域绑定机制.let和 ...
- c# 多线程 创建对象实例
本次的标题是我在写单例模式的博客时遇到的问题,所以今天专门写了的demo让自己记住怎么简单的使用多线程. 一直纠结的是怎么在for循环中多次实例化对象,好复现单例模式在没有加锁的情况下出现多个实例对象 ...
- HTML中关于图像和表格,链接等的知识
下面是我分享的html中关于图像和表格,链接等知识: ①<img/>图像标签 <img/>标签中的一些常见属性:1,src是图像的路径属性,是img标签中必不可少的属性. 2, ...
- Hibernate学习之一对多关联
注意事项: 1.单向一对多 只需在“一”放进行配置2.双向一对多 需要在关联双方都加以配置,而且需要在一的一方设置inverse=true 首先是实体类: TAddress.java(多的一方) ...
- 【AngularJS】学习资料
1. http://www.cnblogs.com/lcllao/tag/AngularJs/ http://www.ituring.com.cn/article/13474 http://www.a ...
- 练习半音阶口琴--->>修理推键所感
我想,自己现在已经是完全迷上口琴了,在最近练习的时候自己发现推键推到最后的时候,推不过去了,以为是摩擦的问题,于是刻了轨道来减少摩擦,但是效果并不是很明显,于是,自己开始起了买新口琴的心,想换个好一点 ...
- Jmeter之app性能测试(ios,android)
测试小菜鸟alter今天一大早又学习了一点东西关于jmeter-app性能测试,现在记录一下.提到性能测试,那我就简单总结一下.(想跳过的,直接将页面下移到下一个红色字体处) 性能测试的相关知识介绍 ...
- Java基础之TCP与UDP
OSI 7层参考模型 物理层 --> 数据链路层 --> 网络层 --> 传输层 --> 会话层 --> 表示层 --> 应用层 按此顺序称为拆包,反之为封包. T ...
- git分支管理之分支管理策略
分支管理策略 阅读: 246888 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就 ...