欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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 注釋:解釋和優(yōu)化代碼可讀性

    Python 注釋:解釋和優(yōu)化代碼可讀性

    本文將探討Python中注釋的重要性,以及如何通過注釋解釋和優(yōu)化代碼的可讀性,了解如何正確使用注釋可以提高代碼的可維護(hù)性和可理解性
    2023-09-09
  • Python?數(shù)據(jù)類型--集合set

    Python?數(shù)據(jù)類型--集合set

    這篇文章主要介紹了Python?數(shù)據(jù)類型集合set,在集合中的元素是無序的、唯一的、不可變的類型,它還有一個(gè)特殊的列表,可以對(duì)數(shù)據(jù)去重,下面來對(duì)其進(jìn)行更徹底的認(rèn)識(shí)吧,需要的小伙伴可以參考一下
    2022-02-02
  • Python 比較兩個(gè) CSV 文件的三種方法并打印出差異

    Python 比較兩個(gè) CSV 文件的三種方法并打印出差異

    這篇文章主要介紹了Python 比較兩個(gè) CSV 文件并打印出差異,本文將討論比較兩個(gè) CSV 文件的各種方法,我們將包括執(zhí)行此操作的最“Pythonic”方式和可幫助簡(jiǎn)化此任務(wù)的外部 Python 模塊,需要的朋友可以參考下
    2023-06-06
  • Python使用pyinstaller打包含有g(shù)ettext?locales語言環(huán)境的項(xiàng)目(推薦)

    Python使用pyinstaller打包含有g(shù)ettext?locales語言環(huán)境的項(xiàng)目(推薦)

    最近在用 pyhton 做一個(gè)圖片處理的小工具,順便接觸了gettext,用來實(shí)現(xiàn)本地化化中英文轉(zhuǎn)換,本文通過一個(gè)項(xiàng)目給大家詳細(xì)介紹下,感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • PyQt5之基礎(chǔ)框架解讀

    PyQt5之基礎(chǔ)框架解讀

    這篇文章主要介紹了PyQt5之基礎(chǔ)框架,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 在Pytorch中自定義dataset讀取數(shù)據(jù)的實(shí)現(xiàn)代碼

    在Pytorch中自定義dataset讀取數(shù)據(jù)的實(shí)現(xiàn)代碼

    這篇文章給大家介紹了如何在Pytorch中自定義dataset讀取數(shù)據(jù),文中給出了詳細(xì)的圖文介紹和代碼講解,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • python實(shí)現(xiàn)中文文本分句的例子

    python實(shí)現(xiàn)中文文本分句的例子

    今天小編就為大家分享一篇python實(shí)現(xiàn)中文文本分句的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 分享python中matplotlib指定繪圖顏色的八種方式

    分享python中matplotlib指定繪圖顏色的八種方式

    這篇文章主要給大家分享的是python中matplotlib指定繪圖顏色的八種方式,在使用matplotlib的pyplot庫進(jìn)行繪圖時(shí),經(jīng)常會(huì)發(fā)現(xiàn)各種開源代碼指定“color”的方式并不一致,下面就向大家展示8種指定color的方式,需要的朋友可以參考一下
    2022-03-03
  • python實(shí)現(xiàn)微信小程序用戶登錄、模板推送

    python實(shí)現(xiàn)微信小程序用戶登錄、模板推送

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)微信小程序用戶登錄、模板推送,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • python 線性回歸分析模型檢驗(yàn)標(biāo)準(zhǔn)--擬合優(yōu)度詳解

    python 線性回歸分析模型檢驗(yàn)標(biāo)準(zhǔn)--擬合優(yōu)度詳解

    今天小編就為大家分享一篇python 線性回歸分析模型檢驗(yàn)標(biāo)準(zhǔn)--擬合優(yōu)度詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評(píng)論