如何在Python FMX GUI应用中实现按钮上方的水平分隔线?
在DelphiFMX4Python中创建水平分隔线的方法
在FMX框架里,直接使用TSeparator组件就能实现截图中的水平分隔线效果,以下是具体实现步骤和代码示例:
核心实现思路
TSeparator是FMX专门用于创建分隔线的组件,支持水平/垂直方向,只需调整对应属性就能适配你的UI布局。
代码示例
1. 基础导入与窗体初始化
首先导入FMX模块,然后创建主窗体类:
from delphifmx import * class MainForm(Form): def __init__(self, owner): self.Caption = "FMX分隔线演示" self.Width = 400 self.Height = 300
2. 添加水平分隔线(按钮上方)
在窗体初始化方法中添加分隔线,并设置位置、尺寸和样式:
# 创建水平分隔线 self.top_separator = TSeparator(self) self.top_separator.Parent = self # 将分隔线挂载到窗体 self.top_separator.Position.X = 20 # 距离左侧的位置 self.top_separator.Position.Y = 80 # 距离顶部的位置(按钮上方) self.top_separator.Width = 360 # 分隔线宽度,与按钮区域对齐 self.top_separator.Height = 2 # 分隔线厚度 self.top_separator.StyleLookup = "separator" # 应用默认分隔线样式
3. 添加按钮与其他控件
接着添加截图中的按钮和单选按钮,确保分隔线位于按钮上方:
# 创建三个按钮 self.btn1 = Button(self) self.btn1.Parent = self self.btn1.Text = "按钮1" self.btn1.Position.X = 20 self.btn1.Position.Y = 100 self.btn1.Width = 100 self.btn2 = Button(self) self.btn2.Parent = self self.btn2.Text = "按钮2" self.btn2.Position.X = 130 self.btn2.Position.Y = 100 self.btn2.Width = 100 self.btn3 = Button(self) self.btn3.Parent = self self.btn3.Text = "按钮3" self.btn3.Position.X = 240 self.btn3.Position.Y = 100 self.btn3.Width = 100 # 创建单选按钮 self.radio1 = RadioButton(self) self.radio1.Parent = self self.radio1.Text = "选项1" self.radio1.Position.X = 20 self.radio1.Position.Y = 150 self.radio2 = RadioButton(self) self.radio2.Parent = self self.radio2.Text = "选项2" self.radio2.Position.X = 20 self.radio2.Position.Y = 180
4. 运行应用
最后添加启动代码:
def main(): Application.Initialize() Application.Title = "FMX分隔线示例" Application.MainForm = MainForm(Application) Application.MainForm.Show() Application.Run() Application.MainForm.Destroy() if __name__ == '__main__': main()
关键属性说明
Parent:必须设置为窗体或其他容器控件,否则分隔线不会显示Position.X/Y:手动控制分隔线的位置,适合固定布局Width/Height:水平分隔线调整Width控制长度,Height控制厚度;垂直分隔线则相反StyleLookup:指定样式名称,"separator"是FMX默认的标准分隔线样式Align:如果需要自适应窗体宽度,可以设置为"Top",此时Width会自动铺满窗体(需配合Margins调整左右边距)
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

