Skip to content

TButtonedEditDemo 项目分析

项目信息

文件结构

TButtonedEditDemo/
├── 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.ImageList1 = ImageList(self)
        self.Button1 = Button(self)
        self.ButtonedEdit1 = ButtonedEdit(self)
        self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit1.pydfm"))
        self.Button1.OnClick = self.Button1Click

        # 创建 TButtonedEdit 组件
        self.buttonedEdit = ButtonedEdit(self)
        self.buttonedEdit.Parent = self  # 设置父控件为当前表单
        self.buttonedEdit.Top = 20  # 设置位置
        self.buttonedEdit.Left = 20  # 设置位置
        self.buttonedEdit.Width = 250  # 设置编辑框宽度
        self.buttonedEdit.Images = self.ImageList1  # 设置关联的图片列表组件
        self.buttonedEdit.LeftButton.ImageIndex = 0  # 设置图片索引下标
        self.buttonedEdit.LeftButton.Visible = True  # 设置可见
        self.buttonedEdit.RightButton.ImageIndex = 1
        self.buttonedEdit.RightButton.Visible = True

        # 创建一个按钮用于显示输入的文本
        self.showButton = Button(self)
        self.showButton.Parent = self  # 设置父控件为当前表单
        self.showButton.Caption = 'Show Input'  # 设置按钮文本
        self.showButton.Top = 60  # 设置按钮位置
        self.showButton.Left = 20  # 设置按钮位置
        self.showButton.Width = 200  # 设置按钮宽度
        self.showButton.OnClick = self.show_input  # 绑定点击事件

    def show_input(self, Sender):
        # 按钮点击事件处理函数
        input_text = self.buttonedEdit.Text  # 获取输入框中的文本
        ShowMessage(f'You entered: {input_text}')  # 显示输入的文本

    def Button1Click(self, Sender):
        ShowMessage(self.ButtonedEdit1.Text)

设计文件: Unit1.sct

def Button1Click(Sender): 

设计文件: Unit1.sfm

object Form1: TForm
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 215
  ClientWidth = 334
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -15
  Font.Name = 'Segoe UI'
  Font.Style = []
  TextHeight = 20
  object ButtonedEdit1: TButtonedEdit
    Left = 8
    Top = 176
    Width = 201
    Height = 28
    Images = ImageList1
    LeftButton.ImageIndex = 0
    LeftButton.Visible = True
    RightButton.ImageIndex = 1
    RightButton.Visible = True
    TabOrder = 0
    Text = 'ButtonedEdit1'
  end
  object Button1: TButton
    Left = 216
    Top = 176
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 1
    OnClick = Button1Click
  end
  object ImageList1: TImageList
    Left = 72
    Top = 56
    Bitmap = {
      494C010102000800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
      0000000000003600000028000000400000001000000001002000000000000010
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000011604040E6600000000000000000000000100000F3F0000
      01160000000100000000000000000000000000000000DCDEDC0094B6AC0059AE
      8C003CAE84001CBA7C000CBA740008B6740008B6740014BA7C002CAE7C004CAA
      840077B29C00BCCAC40004020400000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000407073DA47E7E7EFF1E1E29FF000000000000000000000D3A5F5F5FFF5858
      58FF5D5D5DFF0000011400000000000000003CAE840013B684001FC28C0024CA
      94002CCE9C0034D2A40034D6AC003CDEB40044DEB4004CE6C4004CEAC40054EE
      CC005CF2D40062F6DC002CCE9C00040204000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000001E1E
      29FF7E7E7EFF848484FF0000184F00000000000000027E7E7EFFA6A6A6FFA5A5
      A5FF3F3F3FFF171717FF00000524000000000CAE740014B27C001FBE8C001CC6
      94002CCE9C002CD2A40034D6AC003CDAAC0044DEBC0044E2BC004CE6C40054EE
      CC005CEED4005CF2DC0062F6DC00ACC2BC000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000000000000000072B7E7E
      7EFF888888FFAAAAAAFF252525FF1E1E29FF1E1E29FF7E7E7EFFD1D1D1FF2626
      25FF1E1E1EFF131413FF00000D3B000000000CAA740014AE7C001CBA840024C2
      940024CA9C002BD29C0034D6A4003CDAAC0044DEB40044E2BC004CE6C40054EA
      CC0054EECC005CF2D4005CF2D40077B29C000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000009327575
      75FF757575FF7D7D7DFF242424FF252525FF828282FFFDFDFDFF848585FF2323
      23FF272627FF1B1B1BFF00000004000000003CB68C0011AA7C001CB684001FBE
      8C0007BE8400FCFEFC000CCE94002CDAAC001CD6A4003CDEB4004CE6C4004CE6
      C40054EACC0054EECC0054EED40044AA84000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000018080
      80FF898989FFF8F8F8FF222222FF252525FFE6E6E6FFFFFFFFFF292A2AFF2928
      28FF181818FF161632E800000000000000005ABA9C0049BA940007AE7C001CBA
      840004BA8400FCFEFC00FCFEFC00FCFEFC00FCFEFC004CDEBC0044E2BC004CE6
      BC004CE6C4004CEAC40054EACC0024B27C000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000202
      2D76787878FFDDDDDDFF1D1D1DFF6B6B6BFFFDFDFDFF1F1E1FFF2D302EFF1B1B
      1BFF181918FF00000932000000000000000089CAB4005ABA9C004CBE9C0007AE
      7C00FCFEFC00FCFEFC00FCFEFC00FCFEFC00FCFEFC002CDAAC0044DEB40044E2
      BC0044E2BC004CE6C4004CE6C40014BA7C000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0524747474FFA8A8A8FF161616FF656565FF141414FF313131FF434343FF1F20
      1FFF1A1A1AFF000000070000000000000000A2D2C40058BE9C004CB69400FCFE
      FC00FCFEFC00FCFEFC00FCFEFC00FCFEFC00FCFEFC001CD2A4003CDEB4003CDE
      B40044DEBC0044E2BC0044E2BC0008B674000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0113757575FF919191FF434343FFA4A4A4FF3F3F3FFF363534FF232325FF1C1C
      1CFF181818FF000000040000000000000000C6E2DC0074BEA4005CBEA4000CA6
      7400FCFEFC00FCFEFC00FCFEFC00FCFEFC00FCFEFC00B7EEDC0034D6AC003CDA
      AC003CDEB4003CDEB4003CDEB40008B674000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000727272FF166694FF105D8AFF898989FF323232FF404040FF444444FF3631
      36FF191919FF000000000000000000000000DCEAE4007CC2AC0074C2AC0054B6
      9C0006A27400FCFEFC00FCFEFC00C4EEE40064DEBC009CE6D4009CE6D400ECFE
      FC0034D6AC003CDAAC003CDAAC001CB67C000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000A34737373FF313131FF151515FF363636FF2A2A2AFF2B2B2BFF0303
      1D5600000008000000000000000000000000E4F2EC0094CAB40074BEAC0089CA
      B4000CA26C00DCF6F4009CDAC4001FBE8C0024C29400C4F2E400F4FAFC00FCFE
      FC00FCFEFC0034D6AC0034D6AC002CAE7C000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000200000931383738FF131313FF0E0E0EFF101010FF383839FF2D2B2AFF1E1E
      29FF00000000000000000000000000000000E4F2EC0094CABC0094CAB4007CC2
      AC00149E7400049E6C0007AE7C001CB684001FBE8C006CDAB400B7EEDC00DCF6
      F40084E6CC002BD29C002CD2A4004CAA84000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000000001101E1E29FF2D2D
      2EFF2D597FFF2880CDFF2982CEFF2C8CD2FF2A9EE0FF24A8E9FF2BACE4FF2D36
      3DFF2C3233FF1E1E29FF0000000700000000BCEADC00ACD6CC009CCEC40094CA
      B40086C6B40034AA8400049E6C0007AE7C0013B684001CBA8C0070D6B400A8EA
      D40024CA9C002CCE9C002CCE9C0077B29C000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      00000000000000000000000000000000000000000000181826EA1961A4FF1452
      8EFF1D67ACFF2373BCFF2983CDFF2C98D9FF23B8F5FF21B0EFFF1F7CC1FF1860
      A1FF165A9CFF195B9BFF00000112000000008CDABC00C4DED400ACD6CC009CCE
      C40094CAB40086C6B4007CC6AC006CCAAC005CC6A4004CC6A40049C69C0034CA
      9C002CCA940024CA940024CA9400B4C6BC000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000040000
      072B1E1E29FF165799FF1B2E3DFF2E3840FFB3B8BDFF9DC1E1FF165A99FF0404
      337B000002190000000100000000000000001FBE8400CCE6DC00C4DED400ACD6
      CC00A2D2C40089CAB4007CC6AC006FC6AC0064C6A4005CC6A4004CCA9C0049C6
      9C003CC6940024CA94001FC68C00040204000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000700001142090936AA00001D560000031C000000030000
      000100000000000000000000000000000000000000001CBA7C006CD2AC00A4E6
      CC00B7EEDC00D4EAE400CCE6DC00BADED400A0D6C40084CEB4005CCAA4003CC2
      94001FBE840009BA7C0070AE9400000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      0000000000000000000000000000000000000000000000000000000000000000
      000000000000000000000000000000000000424D3E000000000000003E000000
      2800000040000000100000000100010000000000800000000000000000000000
      000000000000000000000000FFFFFF00F083800100000000E081000000000000
      C000000000000000C001000000000000C001000000000000C001000000000000
      E003000000000000E003000000000000E003000000000000F003000000000000
      F007000000000000C00100000000000080010000000000008001000000000000
      C003000000000000F80F80010000000000000000000000000000000000000000
      000000000000}
  end
end

其他文件

  • Extractor_Icon.ico
  • Project1.xml

详细分析

功能概述

按钮组件演示

使用的组件

  • Form1 (TForm)
  • ButtonedEdit1 (TButtonedEdit)
  • Button1 (TButton)
  • ImageList1 (TImageList)

技术特点

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

窗体属性

  • caption: Button1
  • height: 215
  • width: 334

代码分析

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

定义的类: - Form1

定义的方法: - init - show_input - Button1Click

事件绑定: - self.Button1.OnClick = self.Button1Click - self.showButton.OnClick = self.show_input # 绑定点击事件