TRadioButtonDemo 项目分析¶
项目信息¶
- 项目名称: TRadioButtonDemo
- 下载链接: TRadioButtonDemo.rar
- 分析时间: 2026-03-05
文件结构¶
TRadioButtonDemo/
├── 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.RadioButton2 = RadioButton(self)
self.RadioButton1 = RadioButton(self)
self.LoadProps(os.path.join(os.path.dirname(os.path.abspath(__file__)), "Unit1.pydfm"))
#self.RadioButton2.OnClick = self.RadioButton2Click
#self.RadioButton1.OnClick = self.RadioButton1Click
# 也可以手动指定RadioButton1和RadioButton2的OnClick事件
self.RadioButton2.OnClick = self.radio_button_click
self.RadioButton1.OnClick = self.radio_button_click
# 设置窗口的标题
self.Caption = "TRadioButton 示例"
# 创建一个单选按钮组
self.radio_button1 = RadioButton(self)
self.radio_button2 = RadioButton(self)
self.radio_button3 = RadioButton(self)
# 设置第一个单选按钮的位置和大小
self.radio_button1.Left = 50
self.radio_button1.Top = 100
self.radio_button1.Width = 200
self.radio_button1.Height = 30
self.radio_button1.Parent = self
self.radio_button1.Caption = "选项 1"
self.radio_button1.OnClick = self.radio_button_click
# 设置第二个单选按钮的位置和大小
self.radio_button2.Left = 50
self.radio_button2.Top = 150
self.radio_button2.Width = 200
self.radio_button2.Height = 30
self.radio_button2.Parent = self
self.radio_button2.Caption = "选项 2"
self.radio_button2.OnClick = self.radio_button_click
# 设置第三个单选按钮的位置和大小
self.radio_button3.Left = 50
self.radio_button3.Top = 200
self.radio_button3.Width = 200
self.radio_button3.Height = 30
self.radio_button3.Parent = self
self.radio_button3.Caption = "选项 3"
self.radio_button3.OnClick = self.radio_button_click
# 事件处理程序方法
def radio_button_click(self, Sender):
if Sender == self.radio_button1:
print("选择了选项 1")
elif Sender == self.radio_button2:
print("选择了选项 2")
elif Sender == self.radio_button3:
print("选择了选项 3")
elif Sender == self.RadioButton1:
print('手动指定的Apple')
elif Sender == self.RadioButton2:
print('手动指定的Orange')
def RadioButton1Click(self, Sender):
print('自动生成的Apple')
def RadioButton2Click(self, Sender):
print('自动生成的Orange')
设计文件: Unit1.sct¶
def RadioButton1Click(Sender):
def RadioButton2Click(Sender):
设计文件: Unit1.sfm¶
object Form1: TForm
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 306
ClientWidth = 434
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -15
Font.Name = 'Segoe UI'
Font.Style = []
TextHeight = 20
object RadioButton1: TRadioButton
Left = 32
Top = 24
Width = 113
Height = 17
Caption = 'Apple'
TabOrder = 0
OnClick = RadioButton1Click
end
object RadioButton2: TRadioButton
Left = 240
Top = 24
Width = 113
Height = 17
Caption = 'Orange'
TabOrder = 1
OnClick = RadioButton2Click
end
end
其他文件¶
- Extractor_Icon.ico
- Project1.xml
详细分析¶
功能概述¶
按钮组件演示
使用的组件¶
- Form1 (TForm)
- RadioButton1 (TRadioButton)
- RadioButton2 (TRadioButton)
技术特点¶
- 包含3个GUI组件
- 定义7个事件处理
窗体属性¶
- caption: Orange
- height: 306
- width: 434
代码分析¶
导入的模块: - import os - from glcl import *
定义的类: - Form1
定义的方法: - init - radio_button_click - RadioButton1Click - RadioButton2Click
事件绑定: - #self.RadioButton2.OnClick = self.RadioButton2Click - #self.RadioButton1.OnClick = self.RadioButton1Click - self.RadioButton2.OnClick = self.radio_button_click - self.RadioButton1.OnClick = self.radio_button_click - self.radio_button1.OnClick = self.radio_button_click - self.radio_button2.OnClick = self.radio_button_click - self.radio_button3.OnClick = self.radio_button_click