一、问题描述:
我先写了一个 静态文本 放进 【BoxSizer__垂直分布】, 然后 再写了一个 TextCtrl 控件, 但 控件显示, 有时候会在静态文本上出现
二、图示:
三、代码:
""" 制作 一个 简易的 计算器 """
import wx
import time
from 项目实践.工具.my_tool import App
# Frame 框架类
class Frame(wx.Frame):
def __init__(self):
# 初始化
wx.Frame.__init__(self, parent=None, id=-1, title='计算器', size=(300, 500))
self.panel = wx.Panel(self)
self.box_mag()
# --- 固定搭配
self.Center()
self.Show()
# 1. 标题
def show_title(self):
# 1. 创建静态文本
title = wx.StaticText(parent=self.panel, id=-1, label='简易计算器', )
# 2. 文本设置字体样式
font = wx.Font(20, wx.FONTFAMILY_ROMAN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)
title.SetFont(font)
return title
# 1. 显示
def show_res(self):
res = wx.TextCtrl(self.panel, id=-1, value='0', size=(200, 30), style= wx.TE_LEFT | wx.TE_NOHIDESEL | wx.TE_READONLY,name='结果显示框')
return res
# 容器管理
def box_mag(self):
# 0. 创建管理器
box_sizer = wx.BoxSizer(wx.VERTICAL)
# 1. 标题
box_sizer.Add(self.show_title(), flag=wx.ALIGN_CENTER | wx.ALL, border=30)
# 2. 显示
box_sizer.Add(self.show_res(), flag=wx.ALIGN_CENTER | wx.ALL, border=50)
# 2. 操作
# 2. 设置管理器
self.panel.SetSizer(box_sizer)
class App(wx.App):
def __init__(self, frame_class):
super(self.__class__, self).__init__()
frame = frame_class()
# 设置为顶层框架
self.SetTopWindow(frame)
# 一直检测 事件
self.MainLoop()
def OnExit(self):
return True
if __name__ == '__main__':
App(Frame)