熟悉Delphi的用户,对于VCL & FMX是非常熟悉的;DelphiVCL主要针对是Windows控件,DelphiFMX是Delphi的跨平台GUI库。有粉丝留言哪里有下载,哪里有例子,为此我整理出来,共享给大家。在Python下具体如何使用,请粉丝们关注下一篇文章讲解。
DelphiVCL Python模块
可视化组件库(VCL)是Delphi最先进的用户界面支持的关键部分。它包含大多数本机Windows控件,以及具有附加特性和功能的控件。
DelphiFMX Python模块
FireMonkey(FMX)是Delphi的跨平台GUI库。它利用使用OpenGL或DirectX的GPU硬件加速来创建流畅、现代和高性能的用户界面。DelphiFMX Python模块支持使用Python进行Windows、macOS、Linux和Android开发。
Delphi 的VCL & FMX 图形用户界面库
两个模块都是免费提供通过GitHub或PIP Python包管理器。
GitHub:https://github.com/Embarcadero/DelphiFMX4Python/
Pypi:https://pypi.org/project/delphifmx/
pip安装
pip install delphifmx
支持 Win32 x86、Win64 x86、Linux64 x86、Android64、Mac OS x64(英特尔)以及Mac M1(ARM)架构等环境, Python版本从 cp3.6、cp3.7、cp3.8、cp3.9 到 cp3.10(不包括Linux和macOS上的cp3.6)
Conda管理
从Python cp3.6到cp3.10的Win x86和x64, 推荐从Python cp3.7到cp3.9的Linux x86_64, 目前尚不支持macOS。
python例子Hello Delphi FMX
from delphifmx import *
Application.Initialize()
Application.Title = "Hello Delphi FMX"
main_window = Form(Application)
Application.MainForm = main_window
main_window.SetProps(Caption = "Hello World")
msg = Label(main_window)
msg.SetProps(Parent = main_window,
Text = "Hello Python from Delphi FMX",
Position = Position(PointF(20, 20)),
Width = 200)
main_window.Show()
Application.Run() # This is the main loop
main_window.Destroy()
python例子Hello Python
from delphifmx import *
class HelloForm(Form):
def __init__(self, owner):
self.SetProps(Caption = "Hello Python",
Position = "ScreenCenter", OnShow = self.__form_show)
self.hello = Label(self)
self.hello.SetProps(Parent = self, width = 200,
Text = "Hello Python from Delphi FMX", Position = Position(PointF(20, 20)))
self.clickme = Button(self)
self.clickme.SetProps(Parent = self, Text = "Click Me",
Position = Position(PointF(20, 50)), OnClick = self.__button_click)
def __form_show(self, sender):
self.SetProps(Width = 300, Height = 400)
def __button_click(self, sender):
self.hello.Text = "Thanks!"
def main():
Application.Initialize()
Application.Title = "Hello Delphi FMX"
Application.MainForm = HelloForm(Application)
Application.MainForm.Show()
Application.Run()
Application.MainForm.Destroy()
if __name__ == '__main__':
main()