我是wxPython的新手,面对下面给出的问题。
我需要在一个框架内有2个面板。
截至目前,我可以使用box sizer在框架中放置2个面板。在一个面板中我显示了一个图像,在其他面板中我有一些控件,如文本控制或复选框和东西。
但是当我调整框架大小时,面板会大大调整大小。当我调整框架大小时,图像面板变得越来越小,并开始向左手角移动,最终变成左手角上的一个小点。
请运行我的代码,看看调整帧大小时会发生什么。
我需要帮助...
请回复......
感谢。
Damodar
这是我的代码。
import wx
class ImagePanel(wx.Panel):
def __init__(self,parent,id,title,imagePath):
#=========================================================
# Create a panel
#=========================================================
wx.Panel.__init__(self,parent,id,style=wx.BORDER_THEME)
#==========================================================
# Display the .png image in the panel
#==========================================================
png = wx.Image(imagePath, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
wx.StaticBitmap(self, -1, png, (0, 0), (png.GetWidth(),png.GetHeight()))
class ControlPanel(wx.Panel):
def __init__(self,parent,id,title):
#=========================================================
# Create a panel
#=========================================================
wx.Panel.__init__(self,parent,id,size=(200,700),style=wx.BORDER_THEME)
cb1 = wx.CheckBox(self,-1,"Option 1")
cb2 = wx.CheckBox(self,-1,"Option 2")
cb3 = wx.CheckBox(self,-1,"Option 3")
cb4 = wx.CheckBox(self,-1,"Option 4")
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.AddSpacer(5,5)
sizer.Add(cb1)
sizer.AddSpacer(5,5)
sizer.Add(cb2)
sizer.AddSpacer(5,5)
sizer.Add(cb3)
sizer.AddSpacer(5,5)
sizer.Add(cb4)
sizer.AddSpacer(5,5)
self.SetSizer(sizer)
#==========================================================
# Shows the text control in the panel
#==========================================================
#wx.TextCtrl(self,-1,"This is a multiline text editor.")
app = wx.PySimpleApp()
frame = wx.Frame(None,-1,"Main Frame",size=(900,700),
style=wx.DEFAULT_FRAME_STYLE | wx.FULL_REPAINT_ON_RESIZE)
box = wx.BoxSizer(wx.HORIZONTAL)
box.Add(ImagePanel(frame,1,"Panel A","Artifacts_vs_Elaborations_36855.png"))
box.AddSpacer(5,5)
box.Add(ControlPanel(frame,2,"Panel B"))
frame.SetSizer(box)
frame.Show(1)
app.MainLoop()
答案 0 :(得分:0)
我已经弄清楚我的代码出了什么问题。我没有处理resize事件,即EVT_RESIZE。现在工作正常。
由于
Damodar