wx.python
import wxclass MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, "用户登录", size=(600, 400))
# 创建面板
panel = wx.Panel(self)
self.title = wx.StaticText(panel, label='请输入用户名和密码')
#添加容器,容器中控件按纵向排列
vsizer = wx.BoxSizer(wx.VERTICAL)
vsizer.Add(self.title, proportion=0, flag=wx.BUTTON|wx.TOP|wx.ALIGN_CENTER, border = 15)
panel.SetSizer(vsizer)
if __name__ == '__main__':
app = wx.App() # 初始化
frame = MyFrame(parent=None,id=-1) # 实例 MyFrame 类, 并传递参数
frame.Show() # 显示窗口
app.MainLoop() # 调用主循环方法
如上,出不来窗口
哪里出错了啊 wxPython创建窗口未显示的问题解决
你的代码中出现了一个小错误,导致窗口无法显示。在添加标题的时候,你使用了错误的标志位(wx.BUTTON),而应该使用wx.ALIGN_CENTER_VERTICAL。
以下是修改后的代码:
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, "用户登录", size=(600, 400))
# 创建面板
panel = wx.Panel(self)
self.title = wx.StaticText(panel, label='请输入用户名和密码')
# 添加容器,容器中控件按纵向排列
vsizer = wx.BoxSizer(wx.VERTICAL)
vsizer.Add(self.title, proportion=0, flag=wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.ALIGN_CENTER, border=15)
panel.SetSizer(vsizer)
if __name__ == '__main__':
app = wx.App() # 初始化
frame = MyFrame(parent=None, id=-1) # 实例 MyFrame 类,并传递参数
frame.Show() # 显示窗口
app.MainLoop() # 调用主循环方法
在修改后的代码中,我将wx.BUTTON更正为wx.ALIGN_CENTER_VERTICAL,这样标题将在垂直方向上居中对齐。
希望这个修改能够解决你的问题!如果还有其他问题,请随时提问。 wxPython创建窗口无法显示的问题
在你提供的代码中,有一个小错误导致窗口无法显示出来。问题出在以下这行代码:
vsizer.Add(self.title, proportion=0, flag=wx.BUTTON|wx.TOP|wx.ALIGN_CENTER, border = 15)
wxPython中没有wx.BUTTON这个标识符,请将其修改为wx.ALL。
修改后的代码如下:
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, "用户登录", size=(600, 400))
# 创建面板
panel = wx.Panel(self)
self.title = wx.StaticText(panel, label='请输入用户名和密码')
#添加容器,容器中控件按纵向排列
vsizer = wx.BoxSizer(wx.VERTICAL)
vsizer.Add(self.title, proportion=0, flag=wx.ALL|wx.TOP|wx.ALIGN_CENTER, border=15)
panel.SetSizer(vsizer)
if __name__ == '__main__':
app = wx.App()
frame = MyFrame(parent=None, id=-1)
frame.Show()
app.MainLoop()
请注意以上修改后的代码。现在重新运行代码,应该能够正确显示窗口并包含"请输入用户名和密码"的静态文本。
如果还有其他问题,请随时提问。
如果回答对你有帮助,请给我一个最佳答案!{:10_254:}{:10_254:}{:10_254:}
根据您提供的代码,问题可能在以下几个方面:
1. 代码缩进问题:Python 对代码的缩进非常敏感,确保所有代码块的缩进是一致的,不要出现不一致的缩进。
2. 常量命名问题:在vsizer.Add方法中,您使用了wx.BUTTON ,但正确的常量名应该是wx.ALL ,用于指定添加控件时的边框标志。
以下是您的代码修正后的版本:
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, "用户登录", size=(600, 400))
panel = wx.Panel(self)
self.title = wx.StaticText(panel, label='请输入用户名和密码')
vsizer = wx.BoxSizer(wx.VERTICAL)
vsizer.Add(self.title, proportion=0, flag=wx.ALL|wx.ALIGN_CENTER, border=15)
panel.SetSizer(vsizer)
if __name__ == '__main__':
app = wx.App()
frame = MyFrame(parent=None, id=-1)
frame.Show()
app.MainLoop()
请注意,我已经修复了缩进问题,并将wx.BUTTON修改为了wx.ALL 。现在,这段代码应该能够正确地显示窗口了。如果问题仍然存在,请检查其他可能的问题,比如您的开发环境是否正常,是否导入了正确的 wxPython 库等。 非常感谢,各位!!!
页:
[1]