|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最近刚开始学习wxPython,发现控件在窗体中的位置不太好确定,所以写了以下代码
class winMainForm(wx.Frame):
def __init__(self,parent,title):
wx.Frame.__init__(self, parent, title=title, size=(800,600))
self.panel = wx.Panel(self)
self.panel.Bind(wx.EVT_MOTION, self.OnMove)
self.panel.Bind(wx.EVT_PAINT, self.OnPaint)
self.line_pos = (-1,-1)
self.Show()
def OnMove(self, event):
x,y = event.GetPosition()
print('x坐标:{x},y坐标:{y}'.format(x=x, y=y))
self.line_pos = (x,y)
self.Refresh()
self.SetTitle('靶向定位: x坐标({x}),y坐标({y})'.format(x=x,y=y))
event.Skip()
def OnPaint(self, event):
dc = wx.PaintDC(self.panel)
pen = wx.Pen(wx.Colour(0,0,255))
dc.SetPen(pen)
dc.DrawLine(self.line_pos[0],self.line_pos[1],self.line_pos[0]+50,self.line_pos[1])#水平线向右延伸
dc.DrawLine(self.line_pos[0],self.line_pos[1],self.line_pos[0],self.line_pos[1]+50)#垂直线向下延伸
dc.DrawLine(self.line_pos[0]-50,self.line_pos[1],self.line_pos[0],self.line_pos[1])#水平线向左延伸
dc.DrawLine(self.line_pos[0],self.line_pos[1]-50,self.line_pos[0],self.line_pos[1])#垂直线向上延伸
def main():
try:
app = wx.App(False)
winMainForm(None, '鼠标在窗体中的位置')
app.MainLoop()
except Exception as e:
print('程序报错:', e)
if __name__ == '__main__':
main()
|
|