微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我在wxpython中有关于面板的问题

如何解决我在wxpython中有关于面板的问题

我想和this这样的wxpython建立接口 我在将webview,按钮,textview和绘图嵌入到不同面板中时遇到了问题

当我尝试将webview嵌入panel3时,它在面板右上方显示为小方块

请帮助我

import wx
import wx.html2 

class MyFrame(wx.Frame):
    def __init__(self,parent,ID,title):
        wx.Frame.__init__(self,title)
        
        hBox = wx.BoxSizer(wx.HORIZONTAL)
        
        panel1 = wx.Panel(self,-1,pos=(1,1),size=(1600,50),style=wx.SUNKEN_BORDER)
        panel2 = wx.Panel(self,size=(1300,500),style=wx.SUNKEN_BORDER)
        panel3 = wx.Panel(self,pos=(1300,size=(300,style=wx.SUNKEN_BORDER)
        panel4 = wx.Panel(self,550),style=wx.SUNKEN_BORDER)
        

        panel1.SetBackgroundColour("BLUE")    #buttons in here
        panel2.SetBackgroundColour("RED")     #plots in here
        panel3.SetBackgroundColour("GREY")    #webview in here
        panel4.SetBackgroundColour("YELLOW")  #textview in here
        
        browser = wx.html2.WebView.New(panel3)
        browser.LoadURL("http://www.google.com")
        hBox.Add(browser,wx.EXPAND)
     
         

app = wx.App()
frame = MyFrame(None,"Sizer Test")
frame.Show()
app.MainLoop()

解决方法

您已使用Sizer定义了SetSizer,但尚未分配。
我认为,为了迫使它起作用,您已经在面板中添加了位置。 Sizer / Sizer可以为您执行任务,因此Sizers不再需要职位。
如果我们删除职位,分配一些合理的大小并应用Sizers,我们会得到这个。
这可能不是您要追求的目标,但这是一个起点。

import wx
import wx.html2 

class MyFrame(wx.Frame):
    def __init__(self,parent,ID,title):
        wx.Frame.__init__(self,title)
        
        vbox = wx.BoxSizer(wx.VERTICAL)
        hbox = wx.BoxSizer(wx.HORIZONTAL)

        panel1 = wx.Panel(self,-1,size=(-1,100),style=wx.SUNKEN_BORDER)
        panel2 = wx.Panel(self,style=wx.SUNKEN_BORDER)
        panel3 = wx.Panel(self,400),style=wx.SUNKEN_BORDER)
        panel4 = wx.Panel(self,style=wx.SUNKEN_BORDER)
        

        panel1.SetBackgroundColour("BLUE")    #buttons in here
        panel2.SetBackgroundColour("RED")     #plots in here
        panel3.SetBackgroundColour("GREY")    #webview in here
        panel4.SetBackgroundColour("YELLOW")  #textview in here
        
        browser = wx.html2.WebView.New(panel3)
        browser.LoadURL("http://www.duckduckgo.com")

        hbox.Add(browser,proportion=1,flag=wx.EXPAND)
        panel3.SetSizer(hbox)

        vbox.Add(panel1,flag=wx.EXPAND)
        vbox.Add(panel2,flag=wx.EXPAND)
        vbox.Add(panel3,flag=wx.EXPAND)
        vbox.Add(panel4,flag=wx.EXPAND)
        self.SetSizer(vbox)     
         

app = wx.App()
frame = MyFrame(None,"Sizer Test")
frame.Show()
app.MainLoop()

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。