专栏首页用户4381798的专栏7.wxPython制作一个桌面精灵

7.wxPython制作一个桌面精灵

dog.png

今天我们通过窗体的SetShape()函数来制作一个桌面精灵。我们制作的桌面精灵本质上还是一个窗体,只不过是一个特殊格式的窗体。我们创建一个style=wx.FRAME_SHAPED的窗体,然后利用SetShape()函数按照我们实现准备的图片的轮廓改变窗体的形状,然后在这个窗体上加载我们实现准备的图片,并加上一些简单的事件响应来实现交互,这样一个桌面精灵就出现了。

#一个简单的桌面精灵
import wx
class myframe(wx.Frame):
    def __init__(self):
        self.x=100
        self.y=100
        super().__init__(parent=None,pos=(self.x,self.y),style=wx.FRAME_SHAPED|wx.STAY_ON_TOP)
        img=wx.Image("dog.png")
        self.bg=wx.Bitmap(img)
        region=wx.Region(self.bg)
        self.SetShape(region)
        self.Bind(wx.EVT_PAINT,self.onPaint)
        self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.Bind(wx.EVT_RIGHT_UP, self.OnRightClickEvent)
        self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftClickDown)
    def OnLeftClickDown(self, event):
        pos = event.GetPosition()
        self.pt = wx.Point(pos.x,pos.y)
    def OnRightClickEvent(self, event):
        wx.Exit()
    def OnMouseMotion(self, event):
        if event.Dragging() and event.LeftIsDown():
            pos = self.ClientToScreen(event.GetPosition())
            self.Move((pos.x-self.pt.x,pos.y-self.pt.y))
    def onPaint(self,event):
        mydc=wx.PaintDC(self)
        mydc.DrawBitmap(self.bg,0,0,True)
myapp=wx.App()
frame=myframe()
frame.Show()
myapp.MainLoop()
dogg.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 10.带人机对战的五子棋程序

    今天我们带来一个带人机对战功能的五子棋程序。程序基于前面文章中的框架搭建,新增人机对战的策略。程序基于规则进行决策,不考虑禁手,玩家执黑子先行。棋盘规模采用15...

    用户4381798
  • 6.wxPython防止窗体重画棋子消失的机制

    可以画图的类中wx.ClientDC不必依赖窗体绘画事件,可以随时实例化,随时画图。但是窗体最小化之后再恢复,重画的窗体上通过wx.ClientDC绘制的棋子会...

    用户4381798
  • 11.实现AI对战AI的五子棋程序

    在前文AI人机对战的五子棋程序的基础上,我们加入了AI对战AI的功能。动态图中黑白棋子都是程序通过内置的逻辑控制落子,实现AI与AI之间的对战。这一版程序的AI...

    用户4381798
  • python pyqt5 捕获鼠标键盘事件

    import sys from PyQt5.QtCore import (QEvent, QTimer, Qt) from PyQt5.QtWidgets ...

    用户5760343
  • ReactiveCocoa,最受欢迎的iOS函数响应式编程库(2.5版),没有之一!

    简介 项目主页: ReactiveCocoa 实例下载: https://github.com/ios122/ios122 简评: 最受欢迎,最有价值的iOS响...

    ios122
  • 小蛇学python(2)两百行代码实现旅游中国34座大城市最短路径

    直接说基础语法,也许大家不会感兴趣。前言之后的这一章,给大家介绍一下我最近写出来的一个小功能。用python语言实现GA算法来解决TSP问题,希望以此来激发大家...

    用户2145057
  • 【项目实践】中英文文字检测与识别项目(CTPN+CRNN+CTC Loss原理讲解)

    文字识别也是图像领域一个常见问题。然而,对于自然场景图像,首先要定位图像中的文字位置,然后才能进行文字的识别。

    OpenCV学堂
  • PyQt5 字体/颜色/打印/打印预览对话框

    用户6021899
  • Python GUI项目实战(一)登录窗体的设计与实现

    前面我们学习了Python GUI 图型化界面Tkinter的基础知识,为了检测我们的学习成果,学以致用。我们从今天开始做一个综合Tkinter案例--基于Tk...

    小雨编程
  • python自学成才之路 类详细用法

    python是一门面向对象编程的语言,python的类和java中的类思想上有很多一样的地方,比如python类也是通过class修饰,里面也有成员属性,成员方...

    我是李超人

扫码关注云+社区

领取腾讯云代金券