3

無効になっている TextCtrl の前景色を wxPython から変更するにはどうすればよいですか?
つまり、SetForegroundColour で色を変更すると、有効な状態でのみ変更されます。TextCtrl を無効にすると、たとえば赤に設定しても濃い灰色のままになります。
前もって感謝します!

import wx

class MainFrame(wx.Frame):

    def __init__(self, *args, **kwargs):
        super(MainFrame, self).__init__(*args, **kwargs)
        self.InitUI()
        self.Fit()
        self.Show(True)              

    def InitUI(self):
        text = wx.TextCtrl(self)
        text.SetForegroundColour((255,0,0))
        text.SetValue('Example')
        text.Enable(False)

def main():
    app = wx.App()
    MainFrame(None)
    app.MainLoop()

if __name__ == '__main__':
    main()
4

1 に答える 1

1

短い答えは、できないということです。
背景色と前景色は、それらを無効にしたという事実によって上書きされます。使用しているオペレーティング システム環境によって、無効な項目がどのように表示されるかが決まります。

もちろん、それは問題を回避できないという意味ではありません。
アイテムを無効化/有効化する代わりに、True/False フラグを設定すると、イベントがトリガーされたときにそのフラグを確認でき、フラグが True か False かによって、イベントを処理するかどうかを決定できます。
これにより、イベントを処理し、好きな色を表示できます。

于 2015-08-09T16:41:47.923 に答える