wxPython 实现右下角弹出框

转载注明出处

http://blog.csdn.net/xugangjava/article/details/7478139

使用windows api

workarea = win32api.GetMonitorInfo(1)['Work']
pos=(workarea[2]-280,workarea[3]-180)

这两句 来得到 屏幕右下角的坐标

AnimateWindow来执行 弹出动作

下面是源代码

# -*- coding: gbk -*-
#!/bin/env python
# Author:       许刚
# Created:      2012/1/1
import wx,os,win32api
from res import *
from common import RoleStr,GetIconByFileExt,FileExt
from win32con import AW_ACTIVATE, AW_BLEND, AW_CENTER, AW_HIDE, AW_HOR_NEGATIVE, \
     AW_HOR_POSITIVE, AW_SLIDE, AW_VER_NEGATIVE, AW_VER_POSITIVE,SPI_GETWORKAREA
import win32api
from ctypes import windll, c_int
########################################################################
class Popup(wx.MiniFrame):
	def __init__(self, label,  parent=None,title=""):
		wx.MiniFrame.__init__(self, parent, -1, title, wx.DefaultPosition,size=(280,180),style=wx.DEFAULT_FRAME_STYLE| wx.STAY_ON_TOP)
		workarea = win32api.GetMonitorInfo(1)['Work']
		pos=(workarea[2]-280,workarea[3]-180)
		bg=wx.Colour(255, 255, 225)
		self.SetBackgroundColour(bg)
		self.SetPosition(pos)
		text = wx.StaticText(self, -1, label)
		#font = wx.Font(13, wx.FONTENCODING_SYSTEM, wx.NORMAL, wx.NORMAL)
		#text.SetFont(font)
		text.SetBackgroundColour(bg)
		flags = AW_SLIDE | AW_VER_NEGATIVE | AW_ACTIVATE
		windll.user32.AnimateWindow(c_int(self.GetHandle()), c_int(600), c_int(flags))
		self.Refresh()
		self.Bind(wx.EVT_CLOSE,self.RemovePopup)

	def RemovePopup(self, evt=None):
		flags = AW_BLEND | AW_HIDE
		windll.user32.AnimateWindow(c_int(self.GetHandle()), c_int(600), c_int(flags))
		self.Destroy()

########################################################################
if __name__=='__main__':
	app=wx.PySimpleApp()


	f=Popup('测试右下角弹出框\n测试右下角弹出框\n\n')
	f.Show()
	app.MainLoop()

最后运行效果



你可能感兴趣的:(windows,测试,System,import,Blend,wxPython)