最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WxPython中控件隱藏與顯示的小技巧

 更新時(shí)間:2022年11月01日 14:44:17   作者:陳年椰子  
這篇文章主要介紹了WxPython中控件隱藏與顯示的小技巧,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

WxPython控件隱藏與顯示

WxPython 的控件,除了有Disable() 和 Enable()方法,還有hide及show方法,在固定位置的布局,Hide 和 Show()工作正常 。

比如這樣

import wx
 
class MyButton(wx.Frame):
    flag = True
 
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title)
        panel = wx.Panel(self, -1, size=(300, 250))
        self.btn1 = wx.Button(panel, 201, u'設(shè)置', pos=(80, 70))
        self.Bind(wx.EVT_BUTTON, self.click1, self.btn1)
        self.btn2 = wx.Button(panel, 202, u'設(shè)置2', pos=(180, 70))
        self.Bind(wx.EVT_BUTTON, self.click2, self.btn2)
        self.Centre()
        self.btn2.Hide()
 
    def click1(self, e):
        print("btn1 click!")
        if self.flag:
            self.btn2.Hide()
            self.flag = False
        else:
            # self.btn2.Disable()
            self.btn2.Show()
            self.flag = True
 
    def click2(self, e):
        print("btn2 click!")
 
 
if __name__ == '__main__':
    app = wx.App()
    frame = MyButton(None, -1, u'按鈕示例')
    frame.Show()
    app.MainLoop()

但如果使用wx.BoxSizer 的 EXPAND 布局 , 如果init 時(shí)就隱藏 控件,就會(huì)照成錯(cuò)位

比如這樣

import wx
 
class MyButton(wx.Frame):
    flag = True
    def __init__(self,parent,id,title):
        wx.Frame.__init__(self,parent,id,title)
        panel=wx.Panel(self,-1,size=(300,250))
        box = wx.BoxSizer(wx.HORIZONTAL)
        self.btn1 = wx.Button(panel, -1, 'Button1')
        self.btn2 = wx.Button(panel, -1, 'Button2')
        self.btn3  = wx.Button(panel, -1, 'Button3')
        box.Add(self.btn1 , 1, wx.ALL, 30)
        box.Add(self.btn2 , 0, wx.EXPAND)
        box.Add(self.btn3 , 0, wx.ALIGN_CENTER)
        self.Bind(wx.EVT_BUTTON, self.click1, self.btn1)
        self.Bind(wx.EVT_BUTTON, self.click2, self.btn2)
        panel.SetSizer(box)
        self.Center()
        self.btn2.Hide()
 
 
    def click1(self,e ):
        print("btn1 click!")
        if self.flag:
            self.btn2.Hide()
            self.flag = False
        else:
            # self.btn2.Disable()
            self.btn2.Show()
            self.flag = True
    def click2(self,e):
        print("btn2 click!")
 
 
if __name__=='__main__':
    app=wx.App()
    frame=MyButton(None,-1,u'按鈕示例')
    frame.Show()
    app.MainLoop()

想要這種布局結(jié)果

實(shí)際是這種布局結(jié)果

要想控件按預(yù)設(shè)的位置顯示,就不能在init里直接執(zhí)行 hide 方法。

要在 Frame 顯示完成后,再進(jìn)行隱藏(調(diào)用afterload)。

代碼優(yōu)化如下

# encoding: utf-8
"""
@author: 陳年椰子
@contact: hndm@qq.com
@version: 1.0
@project:test 
@file: wxgui3.py
@time: 2022-1-14 11:16
說明
"""
 
# coding: utf-8
 
import wx
 
class MyButton(wx.Frame):
    flag = True
    def __init__(self,parent,id,title):
        wx.Frame.__init__(self,parent,id,title)
        panel=wx.Panel(self,-1,size=(300,250))
        box = wx.BoxSizer(wx.HORIZONTAL)
        self.btn1 = wx.Button(panel, -1, 'Button1')
        self.btn2 = wx.Button(panel, -1, 'Button2')
        self.btn3  = wx.Button(panel, -1, 'Button3')
        box.Add(self.btn1 , 1, wx.ALL, 5)
        box.Add(self.btn2 , 0, wx.EXPAND)
        box.Add(self.btn3 , 0, wx.ALIGN_CENTER)
        self.Bind(wx.EVT_BUTTON, self.click1, self.btn1)
        self.Bind(wx.EVT_BUTTON, self.click2, self.btn2)
        panel.SetSizer(box)
        self.Center()
 
 
 
    def afterload(self):
        # 根據(jù)數(shù)據(jù)情況再次調(diào)整控件
        self.flag = False
        self.btn2.Hide()
 
    def click1(self,e ):
        print("btn1 click!")
        if self.flag:
            self.btn2.Hide()
            self.flag = False
        else:
            self.btn2.Show()
            self.flag = True
    def click2(self,e):
        print("btn2 click!")
 
 
if __name__=='__main__':
    app=wx.App()
    frame=MyButton(None,-1,u'按鈕示例')
    frame.Show()
    # frame 顯示完成后,再調(diào)整控件
    frame.afterload()
    app.MainLoop()

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)現(xiàn)對(duì)輸入的密文加密

    python實(shí)現(xiàn)對(duì)輸入的密文加密

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)對(duì)輸入的密文加密,分析python求解簡(jiǎn)單加密問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python中使用bidict模塊雙向字典結(jié)構(gòu)的奇技淫巧

    Python中使用bidict模塊雙向字典結(jié)構(gòu)的奇技淫巧

    bidict模塊通過一對(duì)一映射結(jié)構(gòu)的處理為Pyhton帶來雙向字典,能夠更加利用Python的切片功能,這里我們就來學(xué)習(xí)Python中使用bidict模塊雙向字典結(jié)構(gòu)的奇技淫巧:
    2016-07-07
  • pandas如何使用列表和字典創(chuàng)建?Series

    pandas如何使用列表和字典創(chuàng)建?Series

    這篇文章主要介紹了pandas如何使用列表和字典創(chuàng)建?Series,pandas 是基于NumPy的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,下文我們就來看看文章是怎樣介紹pandas,需要的朋友也可以參考一下
    2021-12-12
  • django queryset 去重 .distinct()說明

    django queryset 去重 .distinct()說明

    這篇文章主要介紹了django queryset 去重 .distinct()說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python迭代器與生成器及作用示例詳解

    Python迭代器與生成器及作用示例詳解

    Python生成器在內(nèi)存管理、延遲計(jì)算、生成無限序列以及提高代碼簡(jiǎn)潔性和可讀性方面都具有重要作用,這篇文章主要介紹了Python迭代器與生成器示例詳解,需要的朋友可以參考下
    2024-02-02
  • matplotlib 生成的圖像中無法顯示中文字符的解決方法

    matplotlib 生成的圖像中無法顯示中文字符的解決方法

    這篇文章主要介紹了matplotlib 生成的圖像中無法顯示中文字符的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python2.x與Python3.x的區(qū)別

    Python2.x與Python3.x的區(qū)別

    這篇文章主要介紹了Python2.x與Python3.x的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 基于Python編寫一個(gè)簡(jiǎn)單的端口掃描器

    基于Python編寫一個(gè)簡(jiǎn)單的端口掃描器

    端口掃描是非常實(shí)用的,不止用在信息安全方面,日常的運(yùn)維也用得到。本文將利用Python編寫一個(gè)簡(jiǎn)單的端口掃描器,需要的可以參考一下
    2022-04-04
  • Python如何使用Scapy實(shí)現(xiàn)端口探測(cè)

    Python如何使用Scapy實(shí)現(xiàn)端口探測(cè)

    Scapy 是一款使用純Python編寫的跨平臺(tái)網(wǎng)絡(luò)數(shù)據(jù)包操控工具,它能夠處理和嗅探各種網(wǎng)絡(luò)數(shù)據(jù)包,本文主要介紹了Python如何使用使用Scapy實(shí)現(xiàn)端口探測(cè),有需要的可以參考下
    2023-10-10
  • Python檢測(cè)兩個(gè)文本文件相似性的三種方法

    Python檢測(cè)兩個(gè)文本文件相似性的三種方法

    檢測(cè)兩個(gè)文本文件的相似性是一個(gè)常見的任務(wù),可以用于文本去重、抄襲檢測(cè)等場(chǎng)景,Python 提供了多種方法來實(shí)現(xiàn)這一功能,x下面小編就來簡(jiǎn)單介紹一下吧
    2025-03-03

最新評(píng)論

富顺县| 和平县| 海口市| 彰化市| 红安县| 封开县| 城市| 温州市| 山东省| 邵阳县| 辰溪县| 英超| 长治市| 融水| 龙胜| 保山市| 韩城市| 当雄县| 崇阳县| 江都市| 屏边| 宁强县| 南溪县| 响水县| 渭南市| 红安县| 新民市| 嵩明县| 南昌市| 阿克苏市| 南和县| 孝感市| 阿合奇县| 霍山县| 合阳县| 四子王旗| 年辖:市辖区| 夏津县| 区。| 西吉县| 蛟河市|