+ -
当前位置:首页 → 问答吧 → wxPython中Frame框架点击最大化后为何里面的内容和控件不能自动跟着拉伸变大?

wxPython中Frame框架点击最大化后为何里面的内容和控件不能自动跟着拉伸变大?

时间:2011-07-08

来源:互联网

如题,我用wxPython写了一个界面,采用的是默认的Frame样式,在界面上有最大化和最小化和关闭按钮,当我点击最大化时候出现了问题:框架本身可以变化,充满全屏,但是里面的面板好像不变,里面的下列列表啊,静态文本啊还是原来的样子,也就是说框架里面的内容并不跟着一起拉伸变大。。求助。。部分代码头如下:
我想到的办法是将框架上的最大化按钮“虚”化(即将Frame中的style设置:style=wx.MINIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU |wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN),但有没有更专业一点的解决方法呢?

Python code

#coding=utf-8

import sqlite3 as lite
import wx,os,sys,string
import wx.lib.buttons
import wx.lib.buttons as buttons
import os
from wxPython.wx import *


#界面############################主页############################################
class InFrame(wx.Frame):
    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id,'人机交互检索界面'.decode('utf-8')
                            ,size=(800,730))
        panel = wx.Panel(self)
        self.tb  = TestTB(panel,id)
        self.tb.Bind(wx.EVT_TOOLBOOK_PAGE_CHANGED, self.OnPageChanged)
        
                       。
                       。
                       。


###########################使用说明######################################
class PageOne(wx.Panel):
     def __init__(self, parent):
         wx.Panel.__init__(self, parent)         
         panel = wx.Panel(self)
         colour = [(255,255,255),(153,204,255),(151,253,225),]

                        。
                        。
                        。

############################查看结果#####################################
class PageThree(wx.Panel):
     def __init__(self, parent):          
        wx.Panel.__init__(self, parent)

        self.toolkit = parent
        global flag1
        panel = wx.Panel(self)
        
        self.Bind(wx.EVT_PAINT, self.Paint1)
        
        colour = [(255,255,204),(255,204,255),(255, 255, 255),(0,123,167)]
        self.SetBackgroundColour(colour[2])

                          。
                          。
                          。

############################选择检索######################################
class PageTwo(wx.Panel):
     #在PageTwo中设置全局变量以便于进行结果输出中新生成的按钮进行清空处理。
     flag=0

     def __init__(self, parent,page3):
        wx.Panel.__init__(self, parent)
        
        self.toolkit = parent

        panel = wx.Panel(self)



if __name__ == '__main__':
     app = wx.PySimpleApp()
     frame = InFrame(parent=None, id=-1)
     frame.Show()
     app.MainLoop()


作者: Ace_wgk   发布时间: 2011-07-08

sizers布局组件

作者: sunming2008   发布时间: 2011-07-08

您能详细一点或者给个例子么?

作者: Ace_wgk   发布时间: 2011-07-08

网上找了个grid sizer布局的例子,是采用表格形式布局的例子
Python code


#!/usr/bin/python
# -*- coding: UTF-8 -*-

import wx

class GridSizerFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, u"布局管理器-GridSizer", size = (300, 150))
        panel = wx.Panel(self, -1)
        sizer = wx.GridSizer(rows=3, cols=3, hgap=5, vgap=5)
        colorList = [u'', u'', u'绿', u'', u'', u'', u'']
        for color in colorList:
            btn = wx.Button(panel, -1, color)
            sizer.Add(btn, 0, 0)
        panel.SetSizer(sizer)
        panel.Fit()

if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = GridSizerFrame()
    frame.Show()
    app.MainLoop()

作者: sunming2008   发布时间: 2011-07-08

http://www.iteye.com/topic/558153

作者: sunming2008   发布时间: 2011-07-08