新手,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()