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

wxPython修改文本框顏色過(guò)程解析

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

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

由于工作需要使用wxPython實(shí)現(xiàn)一個(gè)美觀的新增數(shù)據(jù)界面,這個(gè)界面上的文本框要像html中文本框一樣可以設(shè)置邊框顏色,和字體垂直居中。

當(dāng)時(shí)也看了許多資料,發(fā)現(xiàn)wxpython并沒(méi)有提供這樣的修改方法,后來(lái),花了一段時(shí)間,想出基于wxpython,自定義文本框控件。

具體思路如下:

1、 去除現(xiàn)有wxpython 的wx.TextCtrl控件的邊框,再使用wx.StaticText給wx.TextCtrl做一個(gè)邊框。(要相信,界面上看到的東西,只是開(kāi)發(fā)人想讓你看到的)

2、 這個(gè)邊框需要使用兩個(gè)wx.StaticText控件,為啥要用兩個(gè)?

a) 模擬邊框是需要色差的,由于色差存在,所以看得像一個(gè)邊框。

b) 先使用一個(gè)wx.StaticText控件,設(shè)置一個(gè)黑色背景色,再在這個(gè)wx.StaticText控件上添加一個(gè)白色背景,并且長(zhǎng)寬小于父親2px的wx.StaticText控,這個(gè)界面上就能1px的黑色線條。這就是我們需要的邊框,并且這個(gè)邊框可以邊框顏色和大小。(只需要改父親控件的背景設(shè),和子wx.StaticText的大小就行)

c) 再同理,來(lái)把無(wú)邊框的wx.TextCtrl放入這個(gè)邊框中,設(shè)置位置,就得到了自定義的可以改變邊框顏色和文本垂直居中的文本框

3. 合成示意圖

自定義控件代碼:

import wx


class MyText:
  """自定義文本框"""
  def __init__(self,parent,pos,size=(80,36),readOnly= False):
    self.defaultFontSize= 10 #默認(rèn)字體大小
    self.TextCtrlColor = 'white' #文本框的背景色
    self.defaultBorderColoe = '#EAEAEA' #默認(rèn)邊框顏色

    self.textCtrl, self.border,self.bg = self.__CreateTextCtrl(parent,pos,size,self.defaultBorderColoe,readOnly)

  def __CreateTextCtrl(self,parent,pos,size,borderColor,readOnly=True, borderSize=1):
    """創(chuàng)建文本框"""
    border = wx.StaticText(parent, -1, '', size=size, pos=pos) #創(chuàng)建邊框
    border.SetBackgroundColour(borderColor)  #設(shè)置邊框要展現(xiàn)的顏色
    bg = wx.StaticText(border, -1, '', size=((size[0]-borderSize*2), (size[1]-borderSize*2))
                , pos=(borderSize,borderSize))
    if readOnly:    #設(shè)置文本框是否只讀,還有去自帶的邊框
      style = wx.TE_READONLY|wx.NO_BORDER
    else:
      style = wx.NO_BORDER

    textCtrl = wx.TextCtrl(bg, -1, size=((size[0]-10),self.defaultFontSize*2)
                , pos=(5,(size[1]-2*self.defaultFontSize-borderSize*2)/2),style =style)
    font = wx.Font(self.defaultFontSize,wx.DEFAULT,wx.NORMAL,wx.NORMAL,False,'微軟雅黑')
    textCtrl.SetFont(font)

    if readOnly:
      bg.SetBackgroundColour('rgb(240,240,240)')
      self.TextCtrlColor = 'rgb(240,240,240)'
    else:
      bg.SetBackgroundColour(textCtrl.GetBackgroundColour())
      self.TextCtrlColor = textCtrl.GetBackgroundColour()
    bg.Bind(wx.EVT_LEFT_UP,self.__ClickEvent)
    return textCtrl,border,bg

  def __ClickEvent(self,evt):
    """點(diǎn)擊時(shí)焦點(diǎn)設(shè)置在文本框上"""
    self.textCtrl.SetFocus()

  def SetValue(self,value):
    if not value:
      value = ''
    self.textCtrl.SetValue(value)

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

  def SetBorderColor(self,color):
    self.border.SetBackgroundColour(color)
    self.border.Refresh()

  def SetFontColor(self,color):
    self.textCtrl.SetForegroundColour(color)
    self.textCtrl.SetBackgroundColour(self.TextCtrlColor)

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

  def SetBackgroundColour(self,color):
    self.bg.SetBackgroundColour(color)
    self.textCtrl.SetBackgroundColour(color)
    self.textCtrl.Refresh()

測(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)

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')
frame.Show()
app.MainLoop()

結(jié)果圖:上面的自帶的控件,下面紅色邊框是自定義的

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

相關(guān)文章

  • 一個(gè)小示例告訴你Python語(yǔ)言的優(yōu)雅之處

    一個(gè)小示例告訴你Python語(yǔ)言的優(yōu)雅之處

    本篇中, 我們展示一下一段非常小的代碼, 這段代碼十分吸引我們, 因?yàn)樗褂檬謨?yōu)雅和直接的方式解決了一個(gè)常見(jiàn)的問(wèn)題.
    2014-07-07
  • 基于Python實(shí)現(xiàn)nc批量轉(zhuǎn)tif格式

    基于Python實(shí)現(xiàn)nc批量轉(zhuǎn)tif格式

    做項(xiàng)目有時(shí)會(huì)運(yùn)用到netCDF格式的氣象數(shù)據(jù),而ArcGIS中需要用柵格影像進(jìn)行處理,對(duì)于較多的文件,ArcGIS一個(gè)個(gè)手動(dòng)轉(zhuǎn)換過(guò)于繁瑣,因此我們采用Python進(jìn)行轉(zhuǎn)換,下面就是Python實(shí)現(xiàn)nc批量轉(zhuǎn)tif格式的示例代碼,希望對(duì)你有所幫助
    2022-08-08
  • python如何求圓的面積

    python如何求圓的面積

    在本篇文章里小編給大家分享了關(guān)于python求圓面積的實(shí)例代碼及相關(guān)擴(kuò)展內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • 解決pip安裝報(bào)錯(cuò)required?to?install?pyproject.toml-based?projects問(wèn)題

    解決pip安裝報(bào)錯(cuò)required?to?install?pyproject.toml-based?projec

    這篇文章主要介紹了解決pip安裝報(bào)錯(cuò)required?to?install?pyproject.toml-based?projects問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 淺談python數(shù)據(jù)類型及類型轉(zhuǎn)換

    淺談python數(shù)據(jù)類型及類型轉(zhuǎn)換

    這篇文章主要介紹了淺談python數(shù)據(jù)類型及類型轉(zhuǎn)換,介紹了python中的數(shù)據(jù)類型,以及數(shù)據(jù)的不可變性,還有字符串,列表等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python實(shí)現(xiàn)Singleton模式的方式詳解

    Python實(shí)現(xiàn)Singleton模式的方式詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)Singleton模式的方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python實(shí)現(xiàn)從字典中刪除元素的方法

    python實(shí)現(xiàn)從字典中刪除元素的方法

    這篇文章主要介紹了python實(shí)現(xiàn)從字典中刪除元素的方法,涉及Python中del方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • python爬蟲超時(shí)的處理的實(shí)例

    python爬蟲超時(shí)的處理的實(shí)例

    今天小編就為大家分享一篇python爬蟲超時(shí)的處理的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python利用arcpy模塊實(shí)現(xiàn)柵格的創(chuàng)建與拼接

    Python利用arcpy模塊實(shí)現(xiàn)柵格的創(chuàng)建與拼接

    這篇文章主要為大家詳細(xì)介紹了如何基于Python語(yǔ)言arcpy模塊,實(shí)現(xiàn)柵格影像圖層建立與多幅遙感影像數(shù)據(jù)批量拼接(Mosaic)的操作,感興趣的可以了解一下
    2023-02-02
  • Python視頻剪輯合并操作的實(shí)現(xiàn)示例

    Python視頻剪輯合并操作的實(shí)現(xiàn)示例

    很多人在創(chuàng)作視頻時(shí)都需要進(jìn)行剪輯,本文主要介紹了Python視頻剪輯合并操作的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01

最新評(píng)論

舞阳县| 祁连县| 辽阳市| 如东县| 尼玛县| 吉安市| 磐石市| 于田县| 青阳县| 汝南县| 宜川县| 永兴县| 安仁县| 古田县| 宜丰县| 岳西县| 长春市| 霞浦县| 浮梁县| 清水河县| 灌南县| 宾川县| 金沙县| 衡山县| 云浮市| 台南市| 会泽县| 莎车县| 内黄县| 巴彦县| 桓台县| 张家川| 桓仁| 台山市| 广安市| 油尖旺区| 延津县| 汾西县| 宁国市| 明光市| 涞源县|