1

フラッシュテキストをwxPythonにプログラムする方法を誰かが知っているかどうか疑問に思いましたか?(私はwxPythonにかなり慣れていません)0.5秒ごとに赤と通常の間で点滅します。最新のリリースではなく、Python2.7.3を使用しています。

ありがとう

クリス

4

1 に答える 1

1

その場でフォントを変更する方法を確認する必要があります。通常、ウィジェットのSetFont()メソッドを呼び出すだけです。これを定期的に実行したいので、ほぼ確実にwx.Timerを使用することをお勧めします。必要に応じて、そのテーマに関する私のチュートリアルを読むことができます。私はおそらくStaticTextウィジェットを使用します。

更新:これはばかげた例です:

import random
import time
import wx

########################################################################
class MyPanel(wx.Panel):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent)

        self.font = wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL)
        self.flashingText = wx.StaticText(self, label="I flash a LOT!")
        self.flashingText.SetFont(self.font)

        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.update, self.timer)
        self.timer.Start(1000)

    #----------------------------------------------------------------------
    def update(self, event):
        """"""
        now = int(time.time())
        mod = now % 2
        print now
        print mod
        if mod:
            self.flashingText.SetLabel("Current time: %i" % now)
        else:
            self.flashingText.SetLabel("Oops! It's mod zero time!")
        colors = ["blue", "green", "red", "yellow"]
        self.flashingText.SetForegroundColour(random.choice(colors))

########################################################################
class MyFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Flashing text!")
        panel = MyPanel(self)
        self.Show()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    app.MainLoop()
于 2012-08-07T15:55:26.930 に答える