您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页这篇文章教你开发一个Python桌面应用程序

这篇文章教你开发一个Python桌面应用程序

来源:华佗健康网
这篇⽂章教你开发⼀个Python桌⾯应⽤程序

IronPython和最新的Visual Studio 2019使这⼀切成为可能,它们使Python桌⾯应⽤程序可以与WinForms控件⼀起使⽤。 更重要的是,套件拥有现成的⼀些功能来帮助您实现想要的功能!

Iron Python

IronPython是Python强⼤的开源版本,它是在Microsoft .NET框架上运⾏的Python编程语⾔的改编,IronPython可以使⽤.NET Framework和Python库,⽽其他.NET语⾔也可以轻松使⽤Python代码。

安装最新版本的IronPython之后,您可以打开Visual Studio 2019,该Studio带有⽤于“ IronPython Windows Forms Application”的内置模板项⽬,并创建您的第⼀个应⽤程序。

如何将Telerik RadGridView与现代Fluent主题集成到您的应⽤程序中

⾸先,您需要安装Telerik UI for WinForms UI组件套件 - 您可以从此处,然后将所需的Telerik程序集添加到项⽬⽂件夹中,以使⽤WinForms的RadGridView、FluentTheme和RadChartView(spoiler alert,稍后将需要它)控件。

要在应⽤程序中引⽤⼆进制⽂件,请导⼊clr库,然后使⽤⽅法。 在这⾥,您可以看到如何添加⽰例应⽤程序所需的参考和⽤法。

import clr

import random

clr.AddReference('System.Drawing')

clr.AddReference('System.Windows.Forms')clr.AddReference('Telerik.WinControls')clr.AddReference('Telerik.WinControls.UI')

clr.AddReference('Telerik.WinControls.ChartView')

clr.AddReference('Telerik.WinControls.Themes.Fluent')clr.AddReference('TelerikCommon')

clr.AddReference('Telerik.WinControls.GridView')from System.Drawing import *

from System.Windows.Forms import *from Telerik.WinControls import *from Telerik.WinControls.UI import *from Telerik.Charting import *

from Telerik.WinControls.Themes import *

现在,让我们看⼀下如何添加radGridView控件,其中包含⼀堆不同的列。

#Define RadGridView

self.radGrid = RadGridView() self.radGrid.BestFitColumns()

self.radGrid.ForeColor = Color.Blackself.radGrid.Dock = DockStyle.Fill

#Define Columns

self.decimalColumn = GridViewDecimalColumn()self.textBoxColumn = GridViewTextBoxColumn()self.colorColumn = GridViewColorColumn()

self.checkBoxColumn = GridViewCheckBoxColumn()self.ratingColumn = GridViewRatingColumn()

self.decimalColumn.HeaderText = \"DecimalColumn\"self.textBoxColumn.HeaderText = \"Text\"

self.colorColumn.HeaderText = \"ColorColumn\"

self.checkBoxColumn.HeaderText = \"CheckBoxColumn\"self.ratingColumn.HeaderText = \"RatingColumn\"self.radGrid.Columns.Add(self.decimalColumn)self.radGrid.Columns.Add(self.textBoxColumn)self.radGrid.Columns.Add(self.colorColumn)

self.radGrid.Columns.Add(self.checkBoxColumn)self.radGrid.Columns.Add(self.ratingColumn)self.Controls.Add(self.radGrid)

#Populate Rows

for index in range(10):

self.radGrid.Rows.Add(index, \"Sample Text \" + str(index), Color.FromArgb(random.randint(1,255), random.randint(1,255), random.randint(1,255)), CheckState.Checked, random.randint(1,100))

该结果是⼀个radGridView,它具有以下列:

GridViewDecimalColumn,GridViewTextBoxColumn,GridViewColorColumn,GridViewCheckBoxColumn,GridViewRatingColumn。

如图中所⽰,如果您想将主题应⽤于控件,则可以如此简单地完成。

fluent = FluentTheme()

self.ThemeName = fluent.ThemeName

self.radGrid.ThemeName = fluent.ThemeName

订阅事件并实现您的业务逻辑

这是创建RadButton控件并订阅其Click事件的⽰例。

#Define RadButton1

self.myButton1 = RadButton()

self.myButton1.Text = \"RadButton1\"

self.myButton1.Click += self.OnButton1Clickself.Controls.Add(self.myButton1)

然后,您将必须定义OnButtonClick逻辑。

def OnButton1Click(self, sender, args):#TODO OnClick logic

现在,我们使⽤上⼀个⽰例中的radGridView来看⼀个更复杂的事件相关⽰例。 我们将在CellFormatting事件中实现⼀些逻辑,以便⽤不同的颜⾊填充

GridViewRatingColumn中的单元格。 Rating单元内的值可以在0到100之间,如果值<50,我们将⽤红⾊填充这些单元,否则我们将使⽤Aqua颜⾊。 我们可以使⽤以下代码实现此结果:

def OnRadGridCellFormatting(self, sender, args):if args is not None :

if args.Column.HeaderText == \"RatingColumn\" :

if args.CellElement.RowInfo.Cells[4].Value is not None :if args.CellElement.Value > 50 : args.CellElement.DrawFill = True

args.CellElement.ForeColor = Color.Blueargs.CellElement.NumberOfColors = 1args.CellElement.BackColor = Color.Aquaelse :

args.CellElement.DrawFill = True

args.CellElement.ForeColor = Color.Yellowargs.CellElement.NumberOfColors = 1args.CellElement.BackColor = Color.Redelse :

args.CellElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local)args.CellElement.ResetValue(LightVisualElement.ForeColorProperty, ValueResetFlags.Local)

args.CellElement.ResetValue(LightVisualElement.NumberOfColorsProperty, ValueResetFlags.Local)args.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local)

CellFormatting最终结果是这样的:

RadChartView的Little Bonus Setup ⽰例

正如在radGridView⽰例中看到的那样,使⽤Telerik控件⾮常容易,我们来看另⼀个使⽤BarSeries设置radChartView控件的⽰例。

#Define RadChartView

self.chartView = RadChartView()self.chartView.Size = Size(290, 160)self.chartView.Dock = DockStyle.Fill

#Define BarSeries and CategoricDataPoints

self.barSeries = BarSeries(\"Performance\self.barSeries.Name = \"Q1\"

self.categoricDataPoint1 = CategoricalDataPoint(177, \"Harley\")self.categoricDataPoint2 = CategoricalDataPoint(128, \"White\")self.categoricDataPoint3 = CategoricalDataPoint(143, \"Smith\")self.categoricDataPoint4 = CategoricalDataPoint(111, \"Jones\")self.barSeries.DataPoints.Add(self.categoricDataPoint1)self.barSeries.DataPoints.Add(self.categoricDataPoint2)self.barSeries.DataPoints.Add(self.categoricDataPoint3)self.barSeries.DataPoints.Add(self.categoricDataPoint4) self.chartView.Series.Add(self.barSeries)self.Controls.Add(self.chartView)

结果与您期望的Telerik UI for WinForms应⽤程序⼀样。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务