0

だから私はゼロからコードを書いており、灰色の背景を持つ静的テキスト (不変) を配置する部分に落ちています。フォントを変更できますが、変更でき.ForegroundColourませんBackgroundColour

これがコードです

s_text2 = wx.StaticText(self.panel1, -1, "\n\n\nStop\n\n\n", (x1size+30,10)) 
s_text2.SetBackgroundColour('grey')

何かご意見は?

ええ、これは要点のサンプルへの短いものです

import wx

class Prototype(wx.Frame):
     def __init__(self, parent, title):
        wx.Frame.__init__(self, None, size=(550,300))

        self.InitUI()
        self.Centre()
        self.Show()
    #define User Interface
    def InitUI(self):
        self.panel1 = wx.Panel(self, -1)
        self.sizer = wx.BoxSizer() #Main window sizer
        self.sizer.Add(self.panel1, 1, flag=wx.EXPAND)

        self.hbox = wx.BoxSizer(wx.HORIZONTAL)
        self.panel1.SetSizer(self.hbox)

        #Static Text
        s_text1 = wx.StaticText(self.panel1, -1, "Hello World!", (10,5)) #top text
        self.s_text2 = wx.StaticText(self.panel1, -1, "\n\n\nStop\n\n\n", (300,10)) #top text
        self.s_text2.SetBackgroundColour("blue")
if __name__ == '__main__':
    app = wx.App()
    Prototype(None, title='')
    app.MainLoop()

`

4

3 に答える 3

1

これは私のために働く:

import wx

class MainWindow(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.panel = wx.Panel(self)
        self.text = wx.StaticText(self.panel, label="Test")
        self.text.SetBackgroundColour("gray")
        self.text.SetForegroundColour(wx.WHITE)

        self.sizer = wx.BoxSizer()
        self.sizer.Add(self.text)

        self.panel.SetSizerAndFit(self.sizer)  
        self.Show()

app = wx.App(False)
win = MainWindow(None)
app.MainLoop()
于 2013-02-21T16:30:03.440 に答える
0

wxGTK ポートを使用している場合、静的テキストは真のウィジェットではないため、背景色を設定できない場合があります。代わりに、それらは親に直接描画されるだけであり、アクティブなテーマは背景色が使用されるかどうかに影響を与える可能性があります.

wx.lib.stattext には真のウィジェットである汎用クラスがあり、代わりにそれを使用できます。

于 2013-02-22T20:36:27.803 に答える
0

私はちょうどそれを解決しました。

import wx

class Prototype(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, None, size=(550,300))

        self.InitUI()
        self.Centre()
        self.Show()
    #define User Interface
    def InitUI(self):
        self.panel1 = wx.Panel(self, -1)

        #Static Text
        s_text1 = wx.StaticText(self.panel1, -1, "Hello World!", (10,5)) #top text
        self.s_text2 = wx.TextCtrl(self.panel1, style=wx.TE_READONLY | wx.NO_BORDER, pos=(300,10)) #top text
        self.s_text2.AppendText("gray")
        self.s_text2.SetBackgroundColour("gray")
if __name__ == '__main__':
    app = wx.App()
    Prototype(None, title='')
    app.MainLoop()
于 2013-02-25T20:30:47.937 に答える