Skip to content

TToolBarDemo 项目分析

项目信息

  • 项目名称: TToolBarDemo
  • 下载链接: TToolBarDemo.rar
  • 分析时间: 2026-03-05

文件结构

TToolBarDemo/
├── 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.ToolBar1 = ToolBar(self)
        self.ImageList1 = ImageList(self)
        self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit1.pydfm"))
        self.ToolButton3.OnClick = self.ToolButton3Click
        self.ToolButton1.OnClick = self.ToolButton1Click

        # 创建 TToolBar 控件用于放置工具按钮
        self.toolBar = ToolBar(self)
        self.toolBar.SetBounds(0, 0, 400, 30)  # 设置工具栏的位置和大小
        self.toolBar.Parent = self  # 将控件设置为窗体的子控件
        self.toolBar.Images = self.ImageList1 # 设置关联的Images

        # 添加工具按钮到工具栏
        self.add_tool_buttons()

        # 创建状态栏用于显示状态信息
        self.statusBar = StatusBar(self)
        self.statusBar.SetBounds(0, 250, 400, 30)  # 设置状态栏位置和大小
        self.statusBar.Parent = self  # 将状态栏设置为窗体的子控件

    # 添加工具按钮的方法
    def add_tool_buttons(self):
        # 创建并设置一个新的工具按钮
        self.btnHello = ToolButton(self.toolBar)
        self.btnHello.ImageIndex = 0 # 图像下标
        self.btnHello.ShowHint = True # 设置显示提示
        self.btnHello.Hint = '显示文本' # 提示信息
        self.btnHello.OnClick = self.on_hello_click  # 绑定点击事件
        self.btnHello.Parent = self.toolBar  # 将按钮设置为工具栏的子控件

        # 创建并设置另一个工具按钮
        self.btnExit = ToolButton(self.toolBar)
        self.btnExit.ImageIndex = 1 # 图像下标
        self.btnExit.ShowHint = True # 设置显示提示
        self.btnExit.Hint = '退出' # 提示信息
        self.btnExit.OnClick = self.on_exit_click  # 绑定点击事件
        self.btnExit.Parent = self.toolBar  # 将按钮设置为工具栏的子控件

    # 处理“你好”按钮点击事件的方法
    def on_hello_click(self, Sender):
        self.statusBar.SimplePanel = True
        self.statusBar.SimpleText = "你好,欢迎使用 TToolBar 示例!"  # 更新状态栏文本

    # 处理“退出”按钮点击事件的方法
    def on_exit_click(self, Sender):
        Application.Terminate()  # 结束应用程序

    def ToolButton1Click(self, Sender):
        ShowMessage('ToolButton1Click')

    def ToolButton3Click(self, Sender):
        ShowMessage('ToolButton3Click')

设计文件: Unit1.sct

def ToolButton1Click(Sender): 
def ToolButton3Click(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 ToolBar1: TToolBar
    Left = 0
    Top = 176
    Width = 382
    Height = 29
    Align = alBottom
    Caption = 'ToolBar1'
    Images = ImageList1
    TabOrder = 0
    ExplicitLeft = 144
    ExplicitTop = 160
    ExplicitWidth = 150
    object ToolButton1: TToolButton
      Left = 0
      Top = 0
      Caption = 'ToolButton1'
      ImageIndex = 0
      OnClick = ToolButton1Click
    end
    object ToolButton2: TToolButton
      Left = 23
      Top = 0
      Width = 8
      Caption = 'ToolButton2'
      ImageIndex = 0
      Style = tbsSeparator
    end
    object ToolButton3: TToolButton
      Left = 31
      Top = 0
      Caption = 'ToolButton3'
      ImageIndex = 1
      OnClick = ToolButton3Click
    end
  end
  object ImageList1: TImageList
    Left = 256
    Top = 120
    Bitmap = {
      494C010102000800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000001000000001002000000000000010
      00000000000000000000000000000000000000000000765100FF734D00FF6F4A
      00FF6C4700FF684400FF654100FF623F00FF5F3D00FF5C3B00FF593900FF5738
      00FF553700FF563700FF4A2F00FF000000000000000000000000000000000000
      00000000000000000016010105660000000000000000000000010000033F0000
      0016000000010000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000BD9A65FF8F6600FF8B6200FF875E
      00FF835A00FF7F5700FF7B5300FF785000FF744C00FF714900FF6D4600FF6A44
      00FF664200FF634000FF603E00FF492E00FF0000000000000000000000000000
      0004040427A47E7E7EFF1E1E29FF00000000000000000000023A5F5F5FFF5858
      58FF5D5D5DFF0000001400000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000BE995DFF9D7400FF997000FF956C
      00FF916800FF8D6400FF896000FF865D00FF825900FF7E5500FF7A5200FF764F
      00FF734B00FF6F4800FF6C4600FF603D00FF0000000000000000000000001E1E
      29FF7E7E7EFF848484FF0000074F00000000000000027E7E7EFFA6A6A6FFA5A5
      A5FF3F3F3FFF171717FF00000024000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000C8A361FFA98000FFA57C00FFA681
      00FF6E5000FF9A7100FF966D00FF926900FF8E6500FF8B6200FF875E00FF835A
      00FF7F5600FF7B5300FF785000FF6B4600FF00000000000000000000012B7E7E
      7EFF888888FFAAAAAAFF252525FF1E1E29FF1E1E29FF7E7E7EFFD1D1D1FF2626
      25FF1E1E1EFF131413FF0000033B000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000CEAA66FFB28916FFB0870FFF2CEE
      EAFF826300FFA87F00FFA47B00FFA07700FF9C7300FF997000FF956C00FF9168
      00FF8D6400FF896000FF855C00FF775100FF0000000000000000000001327575
      75FF757575FF7D7D7DFF242424FF252525FF828282FFFDFDFDFF848585FF2323
      23FF272627FF1B1B1BFF00000004000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000D3AF6AFFB89026FFCC970EFF00C7
      C3FFB38A18FFB08812FFAE860AFF00B9B5FF553F00FFA47B00FFA27900FF9E75
      00FF9A7100FF966D00FF926900FF835D00FF0000000000000000000000018080
      80FF898989FFF8F8F8FF222222FF252525FFE6E6E6FFFFFFFFFF292A2AFF2928
      28FF181818FF14142DE800000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000D9B56FFFBF9732FF82FFFFFFAFFF
      FFFF00C9C9FF59430CFFB68D20FFB48B1CFF19F9F6FF553F03FF00E5E4FF4E3A
      00FFA87F00FFA47B00FFA07700FF906A00FF0000000000000000000000000000
      1476787878FFDDDDDDFF1D1D1DFF6B6B6BFFFDFDFDFF1F1E1FFF2D302EFF1B1B
      1BFF181918FF0000013200000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000DFBA74FFC1993BFF008F8CFFAE89
      30FFBE9737FFD2AB3AFFBB932CFF58440FFF75FEFBFF513E09FFB8FFFFFF503C
      05FFCFA113FF523D02FFAC8300FF9C7600FF0000000000000000000000000000
      0024747474FFA8A8A8FF161616FF656565FF141414FF313131FF434343FF1F20
      1FFF1A1A1AFF0000000700000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000E5BF78FFCAA344FF907C66FF00C0
      BCFF73410AFF67501BFF00C6C4FF764F1AFFBD9D39FFBD952FFF00D6D3FF9E7B
      21FFCC9508FF2CFEFBFF544007FFA37E13FF0000000000000000000000000000
      0013757575FF919191FF434343FFA4A4A4FF3F3F3FFF363534FF232325FF1C1C
      1CFF181818FF0000000400000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000EAC47CFFCFA84BFFCEA649FFCDA5
      47FFB36A22FFC9A145FF00BDBAFF5D4918FF8A6D27FFE7A725FF230F0FFFBF97
      33FFBB932FFF73A8B7FF5E4C10FFA98422FF0000000000000000000000000000
      0000727272FF166694FF105D8AFF898989FF323232FF404040FF444444FF3631
      36FF191919FF0000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000F0C880FFD4AD51FFD3AB4FFFD2AA
      4EFFD0A94CFFCFA74AFFCAA54DFF51D5ECFFCAA244FF69F9F5FF7A6123FF25EE
      EBFF63F8F4FF00F0EAFFC09835FFAF8A2DFF0000000000000000000000000000
      000000000234737373FF313131FF151515FF363636FF2A2A2AFF2B2B2BFF0101
      0956000000080000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000F4CC83FFD9B156FFD7B055FFD6AF
      53FFD5AD52FFD4AC50FFD2AB4EFFD1A94DFFCFA84BFF2AE0F0FFCCA446FF008F
      8CFF6F5821FFC69E3FFFC69E3EFFB59036FF0000000000000000000000000000
      000200000131383738FF131313FF0E0E0EFF101010FF383839FF2D2B2AFF1E1E
      29FF000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000F8CF86FFDDB55AFFDCB459FFDAB3
      58FFD9B257FFD8B156FFD7AF54FFD6AE53FFD4AD51FFD3AC4FFFD2AA4EFFECAB
      26FF9FFFFFFFAD8B3BFFCCA446FFBA953EFF00000000000000101E1E29FF2D2D
      2EFF2D597FFF2880CDFF2982CEFF2C8CD2FF2A9EE0FF24A8E9FF2BACE4FF2D36
      3DFF2C3233FF1E1E29FF00000007000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FAD288FFE0B85DFFDFB75DFFDEB6
      5CFFDDB55BFFDCB45AFFDBB358FFDAB257FFD9B156FFD7B055FFD6AF53FFD5AD
      52FFD4AC50FFD2AB4EFFD1A94CFFBF9A44FF00000000161622EA1961A4FF1452
      8EFF1D67ACFF2373BCFF2983CDFF2C98D9FF23B8F5FF21B0EFFF1F7CC1FF1860
      A1FF165A9CFF195B9BFF00000012000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000FFECA8FFE3BB60FFE2BA5FFFE1B9
      5FFFE0B95EFFDFB85DFFDFB75CFFDEB65BFFDDB55AFFDCB459FFDAB358FFD9B2
      57FFD8B155FFD7AF54FFD6AE53FFB89545FF0000000000000000000000040000
      012B1E1E29FF165799FF1B2E3DFF2E3840FFB3B8BDFF9DC1E1FF165A99FF0101
      187B000000190000000100000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000FFDC95FFEEC876FFEEC8
      76FFEEC776FFEDC775FFECC675FFECC675FFEBC574FFEAC473FFE9C372FFE8C2
      72FFE7C171FFE6C070FFE0BA65FF020201250000000000000000000000000000
      0000000000000000000700000442060624AA000009560000001C000000030000
      0001000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000424D3E000000000000003E000000
      2800000040000000100000000100010000000000800000000000000000000000
      000000000000000000000000FFFFFF000000F083000000000000E08100000000
      0000C000000000000000C001000000000000C001000000000000C00100000000
      0000E003000000000000E003000000000000E003000000000000F00300000000
      0000F007000000000000C0010000000000008001000000000000800100000000
      0000C003000000000000F80F0000000000000000000000000000000000000000
      000000000000}
  end
end

其他文件

  • Extractor_Icon.ico
  • Project1.xml

详细分析

功能概述

GUI组件演示

使用的组件

  • Form1 (TForm)
  • ToolBar1 (TToolBar)
  • ToolButton1 (TToolButton)
  • ToolButton2 (TToolButton)
  • ToolButton3 (TToolButton)
  • ImageList1 (TImageList)

技术特点

  • 包含6个GUI组件
  • 定义4个事件处理

窗体属性

  • caption: ToolButton3
  • height: 205
  • width: 382

代码分析

导入的模块: - import os - from glcl import *

定义的类: - Form1

定义的方法: - init - add_tool_buttons - on_hello_click - on_exit_click - ToolButton1Click - ToolButton3Click

事件绑定: - self.ToolButton3.OnClick = self.ToolButton3Click - self.ToolButton1.OnClick = self.ToolButton1Click - self.btnHello.OnClick = self.on_hello_click # 绑定点击事件 - self.btnExit.OnClick = self.on_exit_click # 绑定点击事件