- PyGTK 教程
- PyGTK - 主页
- PyGTK - 简介
- PyGTK - 环境
- PyGTK - 你好世界
- PyGTK - 重要类
- PyGTK - 窗口类
- PyGTK - 按钮类
- PyGTK - 标签类
- PyGTK - 入门级
- PyGTK - 信号处理
- PyGTK - 事件处理
- PyGTK - 容器
- PyGTK - 盒子类
- PyGTK - ButtonBox 类
- PyGTK - 对齐类
- PyGTK - EventBox 类
- PyGTK - 布局类
- PyGTK - 组合框类
- PyGTK - ToggleButton 类
- PyGTK - CheckButton 类
- PyGTK - 单选按钮类
- PyGTK - 菜单栏、菜单和菜单项
- PyGTK - 工具栏类
- PyGTK - 调整类
- PyGTK - 范围类
- PyGTK - 规模类
- PyGTK - 滚动条类
- PyGTK - 对话框类
- PyGTK - 消息对话框类
- PyGTK - AboutDialog 类
- PyGTK - 字体选择对话框
- PyGTK - 颜色选择对话框
- PyGTK - 文件选择器对话框
- PyGTK - 笔记本类
- PyGTK - 框架类
- PyGTK - AspectFrame 类
- PyGTK - TreeView 类
- PyGTK - 窗格类
- PyGTK - 状态栏类
- PyGTK - ProgressBar 类
- PyGTK - 视口类
- PyGTK - 滚动窗口类
- PyGTK - 箭头类
- PyGTK - 图像类
- PyGTK - DrawingArea 类
- PyGTK - SpinButton 类
- 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 的顶部消息。
状态栏小部件发出以下信号 -
文本弹出 | 当从状态栏消息堆栈中删除消息时会发出此消息。 |
文本推送 | 当消息添加到状态栏消息堆栈时会发出此消息。 |
以下示例演示了状态栏的功能。顶层窗口包含一个具有两行的 VBox。上排有一个固定小部件,其中放置了标签、条目小部件和按钮。而在底行中,添加了一个 gtk.Statusbar 小部件。
为了将消息发送到状态栏,需要获取其 context_id。
id1 = self.bar.get_context_id("Statusbar")
Button 对象的“单击”信号连接到回调函数,通过该函数将消息推送到状态栏中。并且,当在 Entry 小部件内按下 Enter 键时,会发出“激活”信号。该小部件连接到另一个回调。
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 键以在状态栏中看到“已输入文本”消息。