如何在wxpython中状态栏的特定字段中放置进度条?

Posted

技术标签:

【中文标题】如何在wxpython中状态栏的特定字段中放置进度条?【英文标题】:How to place progress bar in specific field of status bar in wxpython? 【发布时间】:2014-04-14 16:34:31 【问题描述】:

以下代码将进度条放在状态栏的第一个字段中:

self.statusbar = self.CreateStatusBar()
self.statusbar.SetFieldsCount(3)
self.statusbar.SetStatusWidths([320, -1, -2])

self.progress_bar = wx.Gauge(self.statusbar, -1, style=wx.GA_HORIZONTAL|wx.GA_SMOOTH)

如何在字段编号中放置进度条。 2的状态栏?

【问题讨论】:

How to put a progress bar (guage) in the statusbar area and lock the gui size的可能重复 【参考方案1】:

状态栏有一个很好的自定义扩展,称为 EnhancedStatusBar,您可以在这里找到:http://xoomer.virgilio.it/infinity77/main/EnhancedStatusBar.html

它允许您将几乎任何小部件添加到状态栏。下面是使用此小部件将进度条添加到状态栏的第二个字段的示例:

import EnhancedStatusBar
import wx

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

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


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

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Enhanced Statusbar Demo")
        panel = MyPanel(self)


        self.statusbar = EnhancedStatusBar.EnhancedStatusBar(self)
        self.statusbar.SetSize((-1, 23))
        self.statusbar.SetFieldsCount(2)
        self.SetStatusBar(self.statusbar)

        self.progress = wx.Gauge(self.statusbar, range=20)
        self.statusbar.AddWidget(self.progress, pos=1)

        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.updateGauge)
        self.timer.Start(100)

    #----------------------------------------------------------------------
    def updateGauge(self, event):
        """"""
        self.progress.Pulse()

#----------------------------------------------------------------------
if __name__ == "__main__":
    app = wx.App(False)
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

在 Windows 7 上使用 Python 2.6 / wxPython 2.8 和 Python 2.7 / wxPython 2.9 进行了测试。但是,它似乎不适用于 wxPython 3。

【讨论】:

以上是关于如何在wxpython中状态栏的特定字段中放置进度条?的主要内容,如果未能解决你的问题,请参考以下文章

wxPython状态栏

第一个 wxPython 窗体应用程序

在 RecyclerView 网格中放置一个不确定的进度条作为页脚

Wordpress:如何在菜单中放置小部件区域

如何在特定标题下的 rmarkdown html 中放置脚注?

如何在 struts2 文本字段标签中放置占位符?