You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 06:12:43