如何绘制矩形并在其中放置文本
How to draw a rectangle and put a text inside it
我是第一次使用wxPython。我的要求是创建一个矩形框并在其中写入一些文本。我试图实现相同但矩形框未在 windows 帧中呈现:
#!/usr/bin/env python
import wx
class Example(wx.Frame):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.InitUI()
def InitUI(self):
self.SetTitle('BPSK')
self.Maximize(True)
self.Show(True)
dc = wx.WindowDC(self)
dc.DrawRectangle(10, 10, 200, 200)
def ShowMessage(self, message):
wx.MessageBox(message, 'Info',
wx.OK | wx.ICON_INFORMATION)
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
if __name__ == '__main__':
main()
我不确定我做错了什么?
您的示例存在几个问题:
虽然它确实有效(至少在 wxPython 2.9.5.1/msw 上),但它可能不是您想要的:
-
wx.WindowDC
画在整个 wx.Frame
上(而不是框架的内部)。您将使用 wx.ClientDC
仅绘制到内部(而不是标题栏和框架的图标)。
但是又会出现一个问题:一缩小边框,图形就没有了。
简而言之,请参阅以下示例在 wxPython wiki 中正确绘制 的最简单方法(意思是,启动一些绘图命令并使其 repainted/refreshed 正确)。
另一种方法是自己绘制位图(wx.Bitmap
+ wx.MemoryDC
+ wx.GraphicsContext
用于抗锯齿绘图)并使用 wx.StaticBitmap
来显示它。
我是第一次使用wxPython。我的要求是创建一个矩形框并在其中写入一些文本。我试图实现相同但矩形框未在 windows 帧中呈现:
#!/usr/bin/env python
import wx
class Example(wx.Frame):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.InitUI()
def InitUI(self):
self.SetTitle('BPSK')
self.Maximize(True)
self.Show(True)
dc = wx.WindowDC(self)
dc.DrawRectangle(10, 10, 200, 200)
def ShowMessage(self, message):
wx.MessageBox(message, 'Info',
wx.OK | wx.ICON_INFORMATION)
def main():
ex = wx.App()
Example(None)
ex.MainLoop()
if __name__ == '__main__':
main()
我不确定我做错了什么?
您的示例存在几个问题:
虽然它确实有效(至少在 wxPython 2.9.5.1/msw 上),但它可能不是您想要的:
-
wx.WindowDC
画在整个wx.Frame
上(而不是框架的内部)。您将使用wx.ClientDC
仅绘制到内部(而不是标题栏和框架的图标)。
但是又会出现一个问题:一缩小边框,图形就没有了。
简而言之,请参阅以下示例在 wxPython wiki 中正确绘制 的最简单方法(意思是,启动一些绘图命令并使其 repainted/refreshed 正确)。
另一种方法是自己绘制位图(wx.Bitmap
+ wx.MemoryDC
+ wx.GraphicsContext
用于抗锯齿绘图)并使用 wx.StaticBitmap
来显示它。