PandaQk 2021-05-05 13:18 采纳率: 60%
浏览 134
已采纳

wxpython 控件 TextCtrl 影响静态文本显示问题

一、问题描述:

我先写了一个 静态文本 放进 【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)
  • 写回答

1条回答 默认 最新

  • 天元浪子 Python领域优质创作者 2021-05-05 16:16
    关注

    使用布局管理器时,一般SetSizer()之后,需要Layout(),才能避免题主所说的问题(如下图所示)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 使用C++实现ATM系统
  • ¥20 求帮,直连能连上oracle12,但是thinkphp6就是报错
  • ¥15 paddleocr运行报错
  • ¥15 怎么用 matlab 设计滞后-超前串联校正网络
  • ¥15 MFC引用C#生成的dll,将dll放置到非exe程序目录,如何操作
  • ¥15 C#创建webservice接口,三方通过多次跳转访问本方服务,获取wsdl文档,wsdl中ip地址为局域网内本机地址而非三方直接访问的地址。
  • ¥15 关于#wireshark#的问题:需要安卓app流量数据集要安卓流量做包序列长度的实验,比如某些流量是在看视频还是在发评论
  • ¥15 Smail语句如何使用判断语句跳过验证卡密界面
  • ¥15 关于#wireshark#的问题:并且能够给数据做标注,如这个流量是在看视频或者是在转账
  • ¥15 运筹优化,gurobi,python