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

wxpython自定義下拉列表框過(guò)程圖解

 更新時(shí)間:2020年02月14日 10:14:47   作者:傅延年  
這篇文章主要介紹了wxpython自定義下拉列表框過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了wxpython自定義下拉列表框過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

自定義wxpython下拉列表框,支持修改邊框顏色,按鈕圖標(biāo)的動(dòng)態(tài)變換

原理同前兩片文章一樣,使用了兩個(gè)wx.staticText做邊框,一個(gè)文本框來(lái)顯示下拉列表的數(shù)據(jù),和一個(gè)圖片按鈕,實(shí)現(xiàn)下拉的標(biāo)志,和一個(gè)自帶的列表框,

影藏該列表框,不要原來(lái)的樣式,這里只需要使用它的展示列表的數(shù)據(jù)功能

自定義列表框的代碼:

class MyComBox:
  """自定義下拉列表框"""
  def __init__(self,parent,pos,size=(200,35),choices=[],readOnly=False,borderColor='#EAEAEA',borderSize=1):
    self.defaultfontSize = 10
    self.defaultBorderColor = '#EAEAEA'
    self.defaultFontColor = 'black'

    self.textCtrl,self.combox,self.background,self.arrow_button = self.__CreateComBox(parent,pos,size,
                                             choices,readOnly,borderColor,borderSize)
  def __CreateComBox(self,parent,pos,size,list,readOnly,borderColor,borderSize):
    #創(chuàng)建邊框
    border = wx.StaticText(parent,-1,"",pos=pos,size=size)
    border.SetBackgroundColour(borderColor)
    bg = wx.StaticText(border,-1,"",size=((size[0]-borderSize*2),(size[1]-borderSize*2)),pos=(borderSize,borderSize))
    style = wx.TE_READONLY | wx.NO_BORDER

    #創(chuàng)建數(shù)據(jù)展示框
    self.textCtrl = wx.TextCtrl(bg,-1,size=((size[0]-30),(self.defaultfontSize*2)),
                  pos=(5,(size[1]-2*self.defaultfontSize-borderSize*2)/2),style= style)
    self.textCtrl.SetBackgroundColour('white')
    #點(diǎn)擊文本框顯示數(shù)據(jù)
    if not readOnly:
      self.textCtrl.Bind(wx.EVT_LEFT_DOWN,self.__OnClick)

    #創(chuàng)建下拉點(diǎn)擊按鈕
    bmp = wx.Image("xia.jpg",wx.BITMAP_TYPE_ANY).ConvertToBitmap()
    arrow_button = wx.BitmapButton(bg,-1,bmp,size = (20,size[1]),pos=(size[0]-22,0),style =wx.NO_BORDER)

    #構(gòu)建列表框,展示列表的數(shù)據(jù)
    self.chooseBox = wx.ComboBox(parent,-1,value="",size=(size[0],-1),pos = (pos[0],pos[1]+10),choices=list,style=wx.TE_READONLY)
    self.chooseBox.Hide()
    self.chooseBox.Bind(wx.EVT_COMBOBOX_CLOSEUP,self.__GetValue)

    #設(shè)置顯示下列列表按鈕
    arrow_button.SetBackgroundColour('white')
    font = wx.Font(self.defaultfontSize,wx.DEFAULT,wx.NORMAL,wx.NORMAL,False,'微軟雅黑')
    self.textCtrl.SetFont(font)

    #設(shè)置只讀情況的樣式
    if readOnly:
      bg.SetBackgroundColour('rgb(240,240,240)')
      self.textCtrl.SetBackgroundColour('rgb(240,240,240)')
      arrow_button.SetBackgroundColour('rgb(240,240,240)')
    else:
     # bg.SetBackgroundColour(self.textCtrl.GetBackgroundColour())
      arrow_button.Bind(wx.EVT_BUTTON,self.__OnClick)

    return self.textCtrl,self.chooseBox,border,arrow_button

  def __GetValue(self,event):
    if self.chooseBox.GetValue()!='':
      self.textCtrl.SetValue(self.chooseBox.GetValue())
      self.chooseBox.Hide()
      bmp = wx.Image("xia.jpg",wx.BITMAP_TYPE_ANY).ConvertToBitmap()
      self.arrow_button.SetBitmap(bmp)
    if self.chooseBox.GetValue()!='請(qǐng)選擇':
      self.textCtrl.SetForegroundColour(self.defaultFontColor)


  def __OnClick(self,event):
    self.chooseBox.Show()
    self.chooseBox.Popup()
    bmp = wx.Image("shang.jpg", wx.BITMAP_TYPE_ANY).ConvertToBitmap()
    self.arrow_button.SetBitmap(bmp)

  def GetValue(self):
    return self.textCtrl.GetValue()

  def SetValue(self,value):
    if not value:
      value = u'請(qǐng)選擇'
    self.textCtrl.SetValue(value)
    self.combox.SetValue(value)


  def SetList(self,list):
    """設(shè)置下拉列表中的數(shù)據(jù)"""
    self.combox.SetItems(list)

  def SetBorderColor(self,color):
    self.background.SetBackgroundColour(color)


  def SetFont(self,font):
    self.textCtrl.SetFont(font)

  def SetForegroundColour(self,color):
    self.textCtrl.SetForegroundColour(color)

  def Bind(self, event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
    self.textCtrl.Bind(event,handler)

圖片:, ,這個(gè)需要下載下去,或者自己找漂亮的圖片

測(cè)試代碼:

# coding:utf-8
import wx

from wxpython import Mywxpython

app = wx.App()
frame = wx.Frame(None, title="Gui Test Editor", pos=(1000, 200), size=(500, 400))

panel = wx.Panel(frame)
panel.SetBackgroundColour('white')
# path_text = wx.TextCtrl(panel, size=(260, 36))
#
# my_text = Mywxpython.MyText(panel,pos=(10, 50),size=(260,36))
# my_text1 = Mywxpython.MyText(panel,pos=(10, 100),size=(260,36),readOnly=True)
# my_text.SetBorderColor('red')
list = ['1','2','3','4']
#wx.ComboBox(panel,-1,value="",size=(80,-1),pos = (100,110),choices=list,style=wx.TE_READONLY)

#my_button = Mywxpython.MyButton(panel,title="點(diǎn)我",pos=(10, 150))
combox = Mywxpython.MyComBox(panel,choices=['1','2','3','4'],pos=(10, 150))
#combox .SetValue("請(qǐng)選擇")
frame.Show()
app.MainLoop()

結(jié)果圖:

按鈕又有點(diǎn)丑,需要自己定義,搞兩個(gè)好看得圖標(biāo),

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python+Selenium實(shí)現(xiàn)自動(dòng)填寫(xiě)問(wèn)卷

    Python+Selenium實(shí)現(xiàn)自動(dòng)填寫(xiě)問(wèn)卷

    本文主要介紹了Python+Selenium實(shí)現(xiàn)自動(dòng)填寫(xiě)問(wèn)卷,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 一文教你用Pyecharts做交互圖表

    一文教你用Pyecharts做交互圖表

    Echarts 是一個(gè)由百度開(kāi)源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開(kāi)發(fā)者的認(rèn)可,本文介紹了Pyecharts交互圖表,感興趣的可以了解一下
    2021-05-05
  • python向xls寫(xiě)入數(shù)據(jù)(包括合并,邊框,對(duì)齊,列寬)

    python向xls寫(xiě)入數(shù)據(jù)(包括合并,邊框,對(duì)齊,列寬)

    這篇文章主要介紹了python向xls寫(xiě)入數(shù)據(jù)(包括合并,邊框,對(duì)齊,列寬),幫助大家更好的利用python處理表格,感興趣的朋友可以了解下
    2021-02-02
  • 不到40行代碼用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的推薦系統(tǒng)

    不到40行代碼用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的推薦系統(tǒng)

    這篇文章主要給大家介紹了如何利用不到40行python代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)單的推薦系統(tǒng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Pycharm中配置使用Anaconda的虛擬環(huán)境進(jìn)行項(xiàng)目開(kāi)發(fā)的圖文教程

    Pycharm中配置使用Anaconda的虛擬環(huán)境進(jìn)行項(xiàng)目開(kāi)發(fā)的圖文教程

    今天在一臺(tái)電腦上跑環(huán)境的時(shí)候,發(fā)現(xiàn)已經(jīng)裝了Pytorch了,但是運(yùn)行沒(méi)有用,提示報(bào)錯(cuò):OSError:?[WinError?126]?找不到指定的模塊,但其實(shí)cmd進(jìn)入虛擬環(huán)境是可以調(diào)用torch的,故本文給大家介紹了Pycharm中配置使用Anaconda的虛擬環(huán)境進(jìn)行項(xiàng)目開(kāi)發(fā)的圖文教程
    2024-09-09
  • python?虛擬環(huán)境詳解

    python?虛擬環(huán)境詳解

    這篇文章主要為大家介紹了python?虛擬環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助<BR>
    2021-12-12
  • Django通用類(lèi)視圖實(shí)現(xiàn)忘記密碼重置密碼功能示例

    Django通用類(lèi)視圖實(shí)現(xiàn)忘記密碼重置密碼功能示例

    今天小編就為大家分享一篇Django通用類(lèi)視圖實(shí)現(xiàn)忘記密碼重置密碼功能示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼

    python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼

    本篇文章主要介紹了python django 實(shí)現(xiàn)驗(yàn)證碼的功能實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Flask-Mail用法實(shí)例分析

    Flask-Mail用法實(shí)例分析

    這篇文章主要介紹了Flask-Mail用法,結(jié)合實(shí)例形式分析了Flask-Mail的安裝、配置參數(shù)及簡(jiǎn)單使用技巧,需要的朋友可以參考下
    2018-07-07
  • python使用smtplib模塊發(fā)送郵件

    python使用smtplib模塊發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了python使用smtplib模塊發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評(píng)論

巢湖市| 枣阳市| 黑山县| 永靖县| 松滋市| 绍兴市| 波密县| 金塔县| 句容市| 曲松县| 临泽县| 澳门| 治县。| 哈尔滨市| 正镶白旗| 中卫市| 大田县| 古丈县| 玉门市| 鱼台县| 武威市| 阿合奇县| 陆川县| 新建县| 盖州市| 隆子县| 济南市| 陇南市| 满洲里市| 射阳县| 新竹市| 普宁市| 陆川县| 曲阳县| 航空| 博乐市| 安康市| 宾川县| 巴彦县| 芮城县| 南乐县|