首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >筛..。- wxPython

筛..。- wxPython
EN

Stack Overflow用户
提问于 2010-04-12 03:24:55
回答 2查看 4K关注 0票数 3

好的,我正在学习wxPython中的sizer,我想知道是否可以这样做:

代码语言:javascript
复制
==============================================
|WINDOW TITLE                          _ [] X|
|============================================|
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxxxNOTEBOOKxxxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|
|________                         ___________|
|IMAGE   |                       |LoginForm  |
|________|                       |___________|
==============================================

注意:是的,我是从wxPython -选择在应用程序中使用的合适的测试器那里得到的

随着笔记本扩大到左和底部,图像对齐左和下,和版面对齐左右和底部,我设法做了几乎所有的事情,但现在我有一个问题。

问题是,我不能单独对对数通知和图像(im使用Box Sizers),我想。

编辑::每个人都能明白我的意思:“哦,我指的基本上是,如果我更改了对齐,它会同时影响LoginForm和图像。例如,如果我将对齐设置为右,图像和loginform都会对齐,因为: sizer.Add(sizer4,0 4,0,wx.ALIGN_RIGHT x wx.RIGHT,10)。希望你们这次能理解。”

这是我正在使用的代码,目前造成问题,任何帮助都是非常感谢的。注意:代码可能是(非常)草率的,因为我仍然在学习方框筛。下面是一个测试代码:

代码语言:javascript
复制
import wx
class Sizerframe(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'sizertestframe',size=(790, 524))
        p = wx.Panel(self)
        nb = wx.Notebook(p, size = (750, 332))
        button = wx.Button(p, -1, "loginform1rest", size=(94,23))
        button1 = wx.Button(p, -1, "Login", size=(94,23))
        button2 = wx.Button(p, -1, "Cancel", size=(94,23))
        imagebutton = wx.Button(p, -1, "imagebutton", size=(94,23))



        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer1 = wx.BoxSizer(wx.HORIZONTAL)
        sizer1.Add(nb,1, wx.EXPAND)
        sizer.Add(sizer1,1, wx.LEFT | wx.RIGHT | wx.EXPAND, 10)
        sizer.Add((-1, 25))
        sizer2 = wx.BoxSizer(wx.VERTICAL)
        sizer2.Add(button, 0)
        sizer3 = wx.BoxSizer(wx.HORIZONTAL)
        sizer3.Add(button1, 0)
        sizer3.Add(button2,0, wx.LEFT, 5)
        sizer2.Add(sizer3, 0)

        sizer4 = wx.BoxSizer(wx.HORIZONTAL)
        sizer4.Add(imagebutton, 1, wx.LEFT | wx.BOTTOM)
        sizer4.Add(sizer2,0, wx.RIGHT | wx.BOTTOM , 5)
        sizer.Add(sizer4,0, wx.ALIGN_RIGHT | wx.RIGHT, 10)
        p.SetSizer(sizer)

def main():
    app = wx.App()
    frame = Sizerframe()
    frame.Show()
    app.MainLoop()
if __name__ == '__main__':
    main()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-12 04:07:46

像这样的怎么样?

代码语言:javascript
复制
container = wx.BoxSizer(wx.VERTICAL)
container.Add(self.nb, 1, wx.EXPAND)

login = wx.BoxSizer(wx.VERTICAL)
login.Add(self.userLabel)
login.Add(self.userText)

# ... clip, rest of login form additions here

bottom = wx.BoxSizer(wx.HORIZONTAL)
bottom.Add(image)
bottom.Add((0, 0), 1, wx.EXPAND)
bottom.Add(login)

container.Add(bottom, 1, wx.EXPAND)

基本上,bottom.Add((0, 0), 1, wx.EXPAND)将充当一个间隔,它将占用图像和登录表单之间的所有空间。我不太明白您所说的“问题是我不能单独对Loginform和Image (我使用Box Sizers),而且我想要对齐”。我主要是跟随插图,试图创建一个布局。我希望这能帮到你。

票数 5
EN

Stack Overflow用户

发布于 2015-07-12 21:12:20

在这里进行标记时,我总是发现在wxFormBuilder中创建代码框架并将代码添加到您的项目中更容易,而不是纯Python中的试用和错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2619718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档