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

如何设置Python FMX GUI Form的打开位置:居中及自定义坐标

DelphiFMX for Python 窗体打开位置设置方案

DelphiFMX库提供了内置属性,可直接控制窗体的打开位置,以下是两种常见场景的实现方式:

1. 窗体居中显示

通过设置窗体的Position属性,可实现不同维度的居中效果:

  • TFormPosition.poScreenCenter:相对于单屏幕居中
  • TFormPosition.poDesktopCenter:多显示器环境下,相对于整个桌面区域居中
  • TFormPosition.poMainFormCenter:子窗体相对于主窗体居中

代码示例(主屏幕居中)

修改你的窗体初始化逻辑即可:

from delphifmx import *

class frmMain(Form):
    def __init__(self, owner):
        self.Caption = 'My Form'
        self.Width = 1000
        self.Height = 500
        # 设置窗体屏幕居中
        self.Position = TFormPosition.poScreenCenter

def main():
    Application.Initialize()
    Application.Title = "My Application"
    Application.MainForm = frmMain(Application)
    Application.MainForm.Show()
    Application.Run()
    Application.MainForm.Destroy()

main()

2. 自定义X/Y坐标位置

直接通过窗体的Left(横向X坐标)和Top(纵向Y坐标)属性指定位置,坐标原点为屏幕左上角:

代码示例(自定义位置)

from delphifmx import *

class frmMain(Form):
    def __init__(self, owner):
        self.Caption = 'My Form'
        self.Width = 1000
        self.Height = 500
        # 自定义位置:左上角偏移X=200,Y=150
        self.Left = 200
        self.Top = 150

def main():
    Application.Initialize()
    Application.Title = "My Application"
    Application.MainForm = frmMain(Application)
    Application.MainForm.Show()
    Application.Run()
    Application.MainForm.Destroy()

main()

注意点

  • 若同时设置Position和Left/Top,Position的优先级更高,会覆盖自定义坐标,需根据需求选择其一。
  • 多显示器场景下,可通过Screen.Width、Screen.Height获取屏幕尺寸,动态计算合适的窗体位置。

内容的提问来源于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.30 10:00:14