新手,python wx,小小的问题

新手,python wx,小小的问题

问题描述:

import wx
q=wx.App()
a=wx.Frame(None,title=''*5+'用户登录界面',size=(500,250),pos=(450,250))
wx.StaticText(a,-1,'账号:\n密码:',pos=(350,200),style=wx.ALIGN_CENTER)
a.Show()
q.MainLoop()

无论我怎样设置StaticText里的pos的参数值,这个文本总是在窗口的最顶部的最中间;我想让这个文本在窗口总体的最中间,怎么弄啊。。。。

从wxPyhton3开始,静态布局的控件需要一个Panel容器,像下面这样:

import wx

q = wx.App()
a = wx.Frame(None, title=''*5+'用户登录界面', size=(500,250), pos=(450,250))
p = wx.Panel(a, -1)
wx.StaticText(p, -1, '账号:\n密码:', pos=(100,50), style=wx.ALIGN_CENTER)
a.Show()
q.MainLoop()

推荐给题主一个通用的wx模板:

#-*- coding: utf-8 -*-

import wx

class mainFrame(wx.Frame):
    '''程序主窗口类,继承自wx.Frame'''
    
    def __init__(self):
        '''构造函数'''
        
        wx.Frame.__init__(self, None, -1, '基本框架', style=wx.DEFAULT_FRAME_STYLE^wx.RESIZE_BORDER)
        # 默认style是下列项的组合:wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN 
        
        self.SetSize((800, 600)) # 设置窗口大小
        self.Center() # 窗口居中
        
        # 以下可以添加各类控件
        p = wx.Panel(self, -1)
        st = wx.StaticText(p, -1, '账号:\n密码:', pos=(350,200), size=(100, -1), style=wx.ALIGN_CENTER)
        
class mainApp(wx.App):
    def OnInit(self):
        self.Frame = mainFrame()
        self.Frame.Show()
        return True

if __name__ == "__main__":
    app = mainApp()
    app.MainLoop()