TStatusBarDemo 项目分析¶
项目信息¶
- 项目名称: TStatusBarDemo
- 下载链接: TStatusBarDemo.rar
- 分析时间: 2026-03-05
文件结构¶
TStatusBarDemo/
├── Extractor_Icon.ico
├── Project1.py
├── Project1.xml
├── Unit1.py
├── Unit1.pydfm
├── Unit1.sct
├── Unit1.sfm
主程序文件: Project1.py¶
from glcl import *
from Unit1 import *
def main():
Application.Initialize()
Application.Title = 'Project1'
Application.MainFormOnTaskbar = True
Application.Icon.LoadFromFile(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Extractor_Icon.ico"))
MainForm = Form1(Application)
MainForm.Show()
FreeConsole()
Application.Run()
MainForm.Free()
if __name__ == '__main__':
main()
单元文件: Unit1.py¶
import os
from glcl import *
class Form1(Form):
def __init__(self, owner):
self.Button1 = Button(self)
self.StatusBar1 = StatusBar(self)
self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit1.pydfm"))
self.Button1.OnClick = self.Button1Click
# 创建 TStatusBar 控件用于显示状态信息
self.statusBar = StatusBar(self)
self.statusBar.SetBounds(0, 150, 400, 30) # 设置控件的位置和大小
self.statusBar.Parent = self # 将控件设置为窗体的子控件
# 初始化状态栏的面板
self.init_status_panels()
# 创建按钮用于更新状态栏文本
self.btnUpdateStatus = Button(self)
self.btnUpdateStatus.SetBounds(10, 50, 150, 30) # 设置按钮的位置和大小
self.btnUpdateStatus.Caption = "更新状态" # 设置按钮文本
self.btnUpdateStatus.OnClick = self.update_status # 绑定点击事件
self.btnUpdateStatus.Parent = self # 将按钮设置为窗体的子控件
# 初始化状态栏面板的方法
def init_status_panels(self):
# 添加多个面板到状态栏
self.statusBar.Panels.Add() # 添加第一个面板
self.statusBar.Panels[0].Text = "面板 1" # 设置面板文本
self.statusBar.Panels.Add() # 添加第二个面板
self.statusBar.Panels[1].Text = "面板 2" # 设置第二个面板文本
self.statusBar.Panels.Add() # 添加第三个面板
self.statusBar.Panels[2].Text = "面板 3" # 设置第三个面板文本
# 设置面板的宽度(可选)
self.statusBar.Panels[0].Width = 120
self.statusBar.Panels[1].Width = 120
self.statusBar.Panels[2].Width = 120
# 更新状态栏文本的方法
def update_status(self, Sender):
# 更新状态栏面板的文本
self.statusBar.Panels[0].Text = "更新: 面板 1"
self.statusBar.Panels[1].Text = "更新: 面板 2"
self.statusBar.Panels[2].Text = "更新: 面板 3"
def Button1Click(self, Sender):
#简单文本显示,需要将SimplePanel设置为True
self.StatusBar1.SimplePanel = True
self.StatusBar1.SimpleText = '这是一条状态提示'
设计文件: Unit1.sct¶
def Button1Click(Sender):
设计文件: Unit1.sfm¶
object Form1: TForm
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 205
ClientWidth = 382
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -15
Font.Name = 'Segoe UI'
Font.Style = []
TextHeight = 20
object StatusBar1: TStatusBar
Left = 0
Top = 186
Width = 382
Height = 19
Panels = <>
ExplicitLeft = 363
ExplicitTop = 0
ExplicitWidth = 205
end
object Button1: TButton
Left = 280
Top = 72
Width = 91
Height = 25
Caption = 'SimpleText'
TabOrder = 1
OnClick = Button1Click
end
end
其他文件¶
- Extractor_Icon.ico
- Project1.xml
详细分析¶
功能概述¶
GUI组件演示
使用的组件¶
- Form1 (TForm)
- StatusBar1 (TStatusBar)
- Button1 (TButton)
技术特点¶
- 包含3个GUI组件
- 定义2个事件处理
窗体属性¶
- caption: SimpleText
- height: 205
- width: 382
代码分析¶
导入的模块: - import os - from glcl import *
定义的类: - Form1
定义的方法: - init - init_status_panels - update_status - Button1Click
事件绑定: - self.Button1.OnClick = self.Button1Click - self.btnUpdateStatus.OnClick = self.update_status # 绑定点击事件