打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
结合Delphi和Python的优势:使用Delphi VCL组件快速构建超现代的Python本机Windows GUI桌面酷炫用户界面应用

有时您的应用程序需要一个用户界面,但是为Python应用程序制作用户界面最好的方法是什么?输入用于Python的DelphiVCL。VCL是成熟的Windows本机GUI框架,具有庞大的包含的可视组件库和强大的第三方组件集合。它是本机Windows应用程序的主流框架,但是如何在Python中使用它呢?多亏了DelphiVCL Python软件包(基于开源Python4Delphi库),VCL是用于使用Python构建本机Windows GUI的一流软件包。需要更多设计工具?您可以在Delphi中构建整个GUI,然后在Python中编写所有逻辑。 

为什么本机GUI很重要

  • 性能: Windows为本机控件提供了硬件加速

  • Windows句柄:本机Windows控件具有Windows句柄,可提供更好的操作系统和应用程序内集成。

  • 一致的行为:使用本机控件可使用户在使用的所有应用程序之间保持一致的行为。

  • Microsoft Active Accessibility(MSAA)是利用本机控件提供可访问性界面(如屏幕阅读器的框架

流行的Python GUI框架

Tkinter TK接口)–默认的Python GUI(在Python许可下可用)使用Tcl / Tk跨平台小部件。Tk在C和某些Tcl中实现。支持各种样式,但不支持OS样式集成。Tkinter样本,泰山老父

import tkinter as tkiclass Application(tki.Frame):def __init__(self, master=None):super().__init__(master)self.list = tki.Listbox(self)self.editb = tki.Button(self, text="Add", command=self.add_to_list)self.edit = tki.Entry(self)self.label = tki.Label(self, text="Hello Python", anchor='w')self.master = masterself.place(anchor='nw', x=10, y=10, relwidth=1, relheight=1, bordermode='outside')self.create_widgets()def create_widgets(self):self.label.place(x=10, y=10, width=100, height=20)self.edit.place(x=10, y=30, width=250, height=24)self.editb.place(x=270, y=24, width=100, height=30)self.list.place(x=10, y=60, width=300, height=300)def add_to_list(self):self.list.insert(tki.END, self.edit.get())root = tki.Tk()root.minsize(500, 400)ttl = root.title("A Tkinter form")app = Application(master=root)app.mainloop()
Tkinter 窗体

PyQt pie-cute)–跨平台Qt小部件库的绑定。最初由Trolltech(1991)和Nokia(2008)共同创立。Qt是一组C ++库和开发工具,其中包括针对GUI,网络,线程,正则表达式,SVG,OpenGL,3D动画等的跨平台抽象。PyQT将这些类中的1000多个实现为一组Python模块。

  • GPL / LGPL许可证或Qt商业许可证

  • 必须安装,pip安装PyQt5

  • 融合样式选项接近匹配的平台外观,但仍不使用本机控件。PyQT样本。

import sysfrom PyQt5.QtWidgets import *class PyQtLayout(QWidget):def __init__(self):super().__init__()self.UI()def UI(self):self.setGeometry(10, 10, 280, 280)self.move(10, 10)self.setWindowTitle('A Qt Form...')label = QLabel('Hello Python', self)label.move(10, 10)edit = QLineEdit("", self)edit.move(10, 30)edit.resize(170, 20)button = QPushButton("Add", self)button.move(190,28)listView = QListWidget(self)listView.move(10, 60)def buttonClick():listView.addItem(edit.text())button.clicked.connect(buttonClick)self.show()def main():app = QApplication(sys.argv)#QApplication.setStyle(QStyleFactory.create('Windows'))ex = PyQtLayout()sys.exit(app.exec_())if __name__ == '__main__':main()
PyQT5 窗体

其他Python GUI框架。

  • PySide – Python Qt绑定项目,提供对完整Qt4.8框架的访问权限,以及用于快速为任何C ++库生成绑定的生成器工具。

  • wxPython –跨平台GUI Python库。它被实现为一组Python扩展模块,这些模块包装了用C ++编写的wxWidgets跨平台库的GUI组件。

  • PyGTK –绑定GTK(GNOME)。GTK是一个小部件工具箱。

  • Kivy –专注于移动和跨平台。

Delphi&VCL

  • VCL Windows特定的VCL(可视化组件库)是一组组件和类,用于以Delphi和C ++语言快速开发Windows应用程序。

  • VCL的GUI组件是本机Windows GUI组件。

Python4Delphi和Embarcadero Delphi

  • Python for Delphi(P4D)是一组免费组件,这些组件将Python DLL包装到Delphi中。轻松执行Python脚本,创建新的Python模块和新的Python类型。 

  • 可以将Python扩展创建为DLL,并提供不同级别的功能:

    • 对python API的低级访问

    • 与Python的高层双向交互

    • 使用Delphi自定义变量(VarPyth.pas)访问Python对象

    • 包装用于RTTI的python脚本中的Delphi对象(WrapDelphi.pas)

    • 使用Delphi类和函数创建python扩展模块

  • 使用Embarcadero Delphi设计漂亮的桌面和移动应用程序UI

  • 借助Delphi内置的丰富的第三方组件生态系统,可以更快,更智能的编写代码。 

  • 集成本机调试可更快地调试

  • 编译和部署高性能本机应用程序

  • 轻松提高代码质量,协作和扩展IDE

适用于Python的DelphiVCL

  • 用于Python的DelphiVCL就是将Delphi对象包装起来,供在RTCL(WrapDelphiVCL.pas)中使用RTTI(WrapDelphi.pas)的Python脚本中使用。

  • 包装器可帮助从python快速创建和访问Delphi对象。 

  • 这些包装器包含容器类,以扩展和公开可在python脚本中使用的自定义事件,方法,变量。

如何为Python构建DelphiVCL

  1. 观看视频,了解如何将Delphi对象作为Python扩展模块进行扩展结合Delphi和Python的优势– Python4Delphi从46.03分钟开始重播第2部分

  2. 或者,我们可以查看博客文章“如何使用Python4Delphi将PythonModule扩展为DLL”。以类似的方式,创建了一个简单的Python模块DelphiVCL,该模块包装了所有的Delphi VCL对象。

注意:对于Python开发人员而言,如何构建此DelphiVCL Python扩展模块并不重要,而是可以学习可用的VCL对象及其属性来快速开发GUI应用程序。与上面提到的Tkinter和PyQt示例应用程序类似,下面是DelphiVCL示例应用程序。

from DelphiVCL import *class MainForm(Form):def __init__(self, Owner):self.Caption = "A VCL Form..."self.SetBounds(10, 10, 340, 410)self.lblHello = Label(self)self.lblHello.SetProps(Parent=self, Caption="Hello Python", Top=10, Left=10, Width=100, Height=24)self.edit1 = Edit(self)self.edit1.SetProps(Parent=self, Top=30, Left=10, Width=200, Height=24)self.button1 = Button(self)self.button1.SetProps(Parent=self, Caption="Add", OnClick=self.Button1Click)self.button1.SetBounds(220,29,90,24)self.lb1 = ListBox(self)self.lb1.SetProps(Parent=self)self.lb1.SetBounds(10,60,300,300)def Button1Click(self, Sender):self.lb1.Items.Add(self.edit1.Text)def main():Application.Initialize()Application.Title = "MyDelphiVCLApp"f = MainForm(Application)f.Show()FreeConsole()Application.Run()main()
Delphi VCL Python窗体

比较不同框架的样式。

样式 

Delphi VCL Python 窗体

操作系统集成:

Delphi VCL Python 窗体

除了这些Delphi VCL之外,还使用Windows本机控件,每个控件都有一个支持UI测试的句柄。没有一个提供本机Windows控件或Windows平台集成。

如何运行DelphiVCL示例。

  1. 下载DelphiVCL.7z并根据python版本压缩。在解压缩的文件夹中找到DelphiVCL.pyd和示例TestVCL.py的位置。

  2. 在命令提示符下,导航到步骤1中提到的文件夹。提供Pythopn.exe路径空间DelphiVCL python脚本。按Enter键。例如)C:DelphiVCLDelphiVCL.64bit-39> C:PythonPython39python.Exe TestVCL.py

  3. 有关更多VCL组件演示的信息,请下载Delphi4Python.zip文件夹并将其解压缩。运行类似于步骤2的示例Delphi4PythonSample.py和Delphi4PythonComponentsSample.py。注意。这个Delphi4Python.pyd是使用Python39.dll构建的

VCL可视化界面UI设计器

  • 窗体设计时要创建或编辑一个使用形式的文件的图形应用程序,无论是.DFM或.fmx文件(或设计)被自动显示。

  • VCL表单窗体显示“最小化”,“调整大小”和“关闭”命令的标准Windows按钮。从ToolPallete拖放组件,您可以使用ObjectInspector直观地查看和设置属性和事件。 

  • VCL组件的最终设计准则支持。

  • 拍摄表单快照(仅VCL)

  • LiveBindings是VCL和FireMonkey框架都支持的数据绑定功能。这是一个基于表达式的框架,这意味着它使用绑定表达式将对象绑定到其他对象或数据集字段。

  • 在表单上的各种可视组件之间创建新的LiveBindings。

  • 编辑现有的LiveBindings。

  • 可视化您创建的所有LiveBindings。

  • 将绑定图导出为图像文件。

在VCL Visual Designers的帮助下,您可以轻松快速地开发GUI,以后可以使用Python4Delphi对其进行包装,并可以扩展为类似于DelphiVCL的Python模块。下载DelphiVCLWebinar.zip文件夹,您可以在其中学习如何使用RAD studio包装自定义VCL表单。注意。这是使用Python39.dll和Rad Studio 10.4.1构建的。

参考文献

Delphi VCL DockWiki的 

Python4Delphi 资源:

博客资源:

YouTube Embarcadero频道链接:

Python4德尔福

资料下载

概要 

  • 学习Delphi和构建本机GUI应用程序更加轻松快捷。

  • 丰富的第三方生态系统资源可用于入门。

  • Python提供了广泛的软件包,可简化开发人员从基本编程任务到高级科学,ML,AI和深度学习相关任务的工作。  

  • 结合使用Delphi和Python的优势,可以帮助用户构建超快速的本机GUI应用程序。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Delphi编写高精度定时器ActiveX控件 - 电脑编程技巧与维护
奇迹重现 Delphi 2005赏析-1
CSDN技术中心 Delphi背后---初学者参考之二(2)
C++编程框架
[杂谈] RAD Studio X Update 1 官方发布了
玄虚出品Delphi教程的前言 good
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服