- PyGTK 教程
- PyGTK - 首页
- PyGTK - 简介
- PyGTK - 环境配置
- PyGTK - Hello World
- PyGTK - 重要类
- PyGTK - 窗口类
- PyGTK - 按钮类
- PyGTK - 标签类
- PyGTK - 输入框类
- PyGTK - 信号处理
- PyGTK - 事件处理
- PyGTK - 容器
- PyGTK - 箱式容器类
- PyGTK - 按钮盒类
- PyGTK - 对齐类
- PyGTK - 事件盒类
- PyGTK - 布局类
- PyGTK - 组合框类
- PyGTK - 切换按钮类
- PyGTK - 复选框类
- PyGTK - 单选按钮类
- PyGTK - 菜单栏、菜单和菜单项
- PyGTK - 工具栏类
- PyGTK - 调整类
- PyGTK - 范围类
- PyGTK - 缩放类
- PyGTK - 滚动条类
- PyGTK - 对话框类
- PyGTK - 消息对话框类
- PyGTK - 关于对话框类
- PyGTK - 字体选择对话框
- PyGTK - 颜色选择对话框
- PyGTK - 文件选择对话框
- PyGTK - 笔记本类
- PyGTK - 框架类
- PyGTK - 带边框的框架类
- PyGTK - 树状视图类
- PyGTK - 分割窗格类
- PyGTK - 状态栏类
- PyGTK - 进度条类
- PyGTK - 视区类
- PyGTK - 带滚动条的窗口类
- PyGTK - 箭头类
- PyGTK - 图片类
- PyGTK - 绘图区类
- PyGTK - 微调按钮类
- PyGTK - 日历类
- PyGTK - 剪贴板类
- PyGTK - 标尺类
- PyGTK - 超时
- PyGTK - 拖放
- PyGTK 有用资源
- PyGTK - 快速指南
- PyGTK - 有用资源
- PyGTK - 讨论
PyGTK - 状态栏类
窗口底部通常有一个通知区域,称为状态栏。任何类型的状态更改消息都可以在状态栏上显示。它还有一个可以用来调整大小的控制柄。
gtk.Statusbar 小部件维护一个消息堆栈。因此,新消息会显示在当前消息的顶部。如果将其弹出,则先前消息将再次可见。消息的来源必须由 context_id 唯一标识。
以下是 gtk.Statusbar 小部件的构造函数:
bar = gtk.Statusbar()
以下是 gtk.Statusbar 类的使用方法:
Statusbar.push(context_id, text) − 此方法将新消息推送到状态栏的堆栈。
Statusbar.pop(context_id) − 此方法从状态栏的堆栈中删除具有指定context_id的顶部消息。
状态栏小部件会发出以下信号:
| text-popped | 从状态栏消息堆栈中移除消息时发出此信号。 |
| text-pushed | 向状态栏消息堆栈添加消息时发出此信号。 |
以下示例演示了 Statusbar 的功能。顶级窗口包含一个包含两行的 VBox。上行有一个 Fixed 小部件,其中放置了一个标签、一个 Entry 小部件和一个按钮。而在底行,添加了一个 gtk.Statusbar 小部件。
为了向状态栏发送消息,需要获取其 context_id。
id1 = self.bar.get_context_id("Statusbar")
按钮对象的“clicked”信号通过回调函数连接,该函数将消息推送到状态栏。当在 Entry 小部件内按下 Enter 键时,“activate”信号会被发出。此小部件连接到另一个回调函数。
btn.connect("clicked", self.on_clicked, id1)
txt.connect("activate", self.on_entered, id1)
两个回调函数都使用push()方法在通知区域中显示消息。
示例
请观察以下代码:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Statusbar demo")
self.set_size_request(400,200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox()
fix = gtk.Fixed()
lbl = gtk.Label("Enter name")
fix.put(lbl, 175, 50)
txt = gtk.Entry()
fix.put(txt, 150, 100)
btn = gtk.Button("ok")
fix.put(btn, 200,150)
vbox.add(fix)
self.bar = gtk.Statusbar()
vbox.pack_start(self.bar, True, False, 0)
id1 = self.bar.get_context_id("Statusbar")
btn.connect("clicked", self.on_clicked, id1)
txt.connect("activate", self.on_entered, id1)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_clicked(self, widget, data=None):
self.bar.push(data, "Button clicked
def on_entered(self, widget, data):
self.bar.push(data, "text entered")
PyApp()
gtk.main()
执行上述代码后,将显示以下输出:
尝试在文本框中输入文本并按 Enter 键,查看状态栏中的“已输入文本”消息。
广告