2017-09-14 23 views
0

我在位圖頂部有一個TextCtrl,當我訪問此面板時,TextCtrl是不可見的,只有在鼠標懸停後纔可見。位圖頂部的WxPython TextCtrl僅在鼠標懸停後纔可見

如果我把圖片放在TextCtrls的前面,這些字段出現,但鼠標不可訪問,只能通過TAB操縱它們。

這個問題只發生在Windows,Linux是完美的。

我已經嘗試過使用該圖像作爲面板的背景,但它沒有按照我的方式工作,因爲它弄亂了我繪製的整個屏幕。

我的代碼:

def LoadBox(self): 
    font = wx.Font(11, wx.FONTFAMILY_DEFAULT, 
        wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL) 

    font1 = wx.Font(10, wx.FONTFAMILY_DEFAULT, 
        wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD) 
    font1.SetPixelSize(wx.Size(0, 20)) 

    font2 = wx.Font(11, wx.FONTFAMILY_DEFAULT, 
        wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL) 

    xPos1 = 131 
    xPos2 = 392 
    hFiel = 50 
    wFiel = 80 

    self.steV = wx.StaticText(self, -1, _("Text 1"), 
           pos=(255, 490), size=(200, hFiel)) 
    self.steV.SetFont(font) 

    tctV1 = wx.TextCtrl(self, value='', pos=(xPos1, 316), size=(wFiel, -1)) 
    tctV1.SetFont(font2) 

    tctV2 = wx.TextCtrl(self, value='', pos=(xPos2, 332), size=(wFiel, -1)) 
    tctV2.SetFont(font) 

    tctV3 = wx.TextCtrl(self, value='', pos=(xPos1, 362), size=(wFiel, -1)) 
    tctV3.SetFont(font2) 

    tctV4 = wx.TextCtrl(self, value='', pos=(xPos2, 378), size=(wFiel, -1)) 
    tctV4.SetFont(font) 

    self.steV5 = wx.StaticText(self, -1, _("Text 2"), pos=(217, 410), 
           style=TE_RIGHT) 
    self.steV5.SetFont(font1) 
    self.steV5.SetForegroundColour(wx.Colour(50,50,50)) 

    tctV5 = wx.TextCtrl(self, value='', pos=(xPos1, 408), size=(wFiel, -1)) 
    tctV5.SetFont(font2) 

    tctV6 = wx.TextCtrl(self, value='', pos=(xPos2, 424), size=(wFiel, -1)) 
    tctV6.SetFont(font) 

    if self.osName == 'Windows': 
     fontX = wx.Font(10, wx.FONTFAMILY_DEFAULT, 
         wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD) 
     fontX.SetPixelSize(wx.Size(0, 16)) 
     self.steV5.SetPosition((233, 410)) 
     self.steV5.SetSize(wx.Size((80, 20))) 
     self.steV5.SetFont(fontX) 
    else: 
     self.steV5.SetSize(wx.Size((72, hFiel))) 

    png = wx.Image('imgs/image.png', 
        wx.BITMAP_TYPE_ANY).ConvertToBitmap() 
    self.bitmap = wx.StaticBitmap(self, -1, png, pos=(25, 245), 
            size=(png.GetWidth(), png.GetHeight())) 

感謝您的幫助!

回答

1

如果你想讓文本控件出現在靜態位圖的頂部,那麼它需要靜態位圖作爲它的父對象,而不是self

+0

只需要注意:這種方式只能在Windows上運行,在Linux上存在分段錯誤。 – msribeir

+0

RobinDunn只是一個問題,在將字段作爲位圖的父項之後,TAB事件不再起作用。你可能知道如何糾正這個問題嗎?我搜索了參考,我所做的嘗試都失敗了。 – msribeir