Python 如何实现类QQ桌面边缘自动隐藏的功能
发布网友
发布时间:2022-06-08 14:08
我来回答
共2个回答
热心网友
时间:2023-11-29 16:59
import wx
# Create a new frame class, derived from the wxPython Frame.
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
# First, call the base class' __init__ method to create the frame
wx.Frame.__init__(self, parent, id, title, (100, 100), (160, 100),
style=wx.RESIZE_BORDER|wx.BORDER_SIMPLE)
# Associate some events with methods of this class
self.Bind(wx.EVT_SIZE, self.OnSize)
self.Bind(wx.EVT_MOVE, self.OnMove)
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
# Add a panel and some controls to display the size and position
panel = wx.Panel(self, -1)
wx.StaticText(panel, -1, "Size:",
wx.DLG_PNT(panel, (4, 4)), wx.DefaultSize
)
wx.StaticText(panel, -1, "Pos:",
wx.DLG_PNT(panel, (4, 16)), wx.DefaultSize
)
self.sizeCtrl = wx.TextCtrl(panel, -1, "",
wx.DLG_PNT(panel, (24, 4)),
wx.DLG_SZE(panel, (36, -1)),
wx.TE_READONLY)
self.posCtrl = wx.TextCtrl(panel, -1, "",
wx.DLG_PNT(panel, (24, 16)),
wx.DLG_SZE(panel, (36, -1)),
wx.TE_READONLY)
self.SetPosition((100,100))
#self.y=self.GetSize().height
#print wx.DLG_PNT(panel, (24, 4)), wx.DLG_SZE(panel, (36, -1))
#print wx.DLG_PNT(panel, (24, 16)),wx.DLG_SZE(panel, (36, -1))
# This method is called automatically when the CLOSE event is
# sent to this window
def OnCloseWindow(self, event):
# tell the window to kill itself
self.Destroy()
# This method is called by the System when the window is resized,
# because of the association above.
def OnSize(self, event):
self.size = event.GetSize()
self.sizeCtrl.SetValue("%s, %s" % (self.size.width, self.size.height))
# tell the event system to continue looking for an event handler,
# so the default handler will get called.
event.Skip()
# This method is called by the System when the window is moved,
# because of the association above.
def OnMove(self, event):
self.pos = event.GetPosition()
if self.pos.y<=32:
self.OnSide()
elif self.pos.y>30:
#self.SetSize(self.size.width,self.y)
pass
self.posCtrl.SetValue("%s, %s" % (self.pos.x, self.pos.y))
event.Skip()
def OnSide(self):
#self.old=list(self.size)
#self.y=self.size.height
self.SetSize((self.size.width,0))
#---------------------------------------------------------------------------
# if running standalone
if __name__ == "__main__":
# Every wxWindows application must have a class derived from wxApp
class MyApp(wx.App):
# wxWindows calls this method to initialize the application
def OnInit(self):
# Create an instance of our customized Frame class
frame = MyFrame(None, -1, "This is a test")
frame.Show(True)
# Tell wxWindows that this is our main window
self.SetTopWindow(frame)
# Return a success flag
return True
app = MyApp(0) # Create an instance of the application class
app.MainLoop() # Tell it to start processing events
随便写了点,wx不要标题栏竟然无法拖动,只好移动上边框
效果:
热心网友
时间:2023-11-29 16:59
看了写起来要些时间,给你找了个参考,希望有用:
http://lab.osgeo.cn/1467.html追问没有时间写,就不要乱贴好吗?