这篇⽂章教你开发⼀个Python桌⾯应⽤程序
IronPython和最新的Visual Studio 2019使这⼀切成为可能,它们使Python桌⾯应⽤程序可以与WinForms控件⼀起使⽤。更重要的是,套件拥有现成的⼀些功能来帮助您实现想要的功能!
Iron Python
IronPython是Python强⼤的开源版本,它是在Microsoft 框架上运⾏的Python编程语⾔的改编,IronPython可以使⽤ Framework和Python库,⽽其他语⾔也可以轻松使⽤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春笋冬笋
lf.radGrid = RadGridView()
lf.radGrid.BestFitColumns()
lf.radGrid.ForeColor = Color.Black
lf.radGrid.Dock = DockStyle.Fill
#Define Columns
lf.decimalColumn = GridViewDecimalColumn()
lf.checkBoxColumn = GridViewCheckBoxColumn()
lf.ratingColumn = GridViewRatingColumn()
lf.decimalColumn.HeaderText = "DecimalColumn"
lf.checkBoxColumn.HeaderText = "CheckBoxColumn"
lf.ratingColumn.HeaderText = "RatingColumn"
lf.radGrid.Columns.Add(lf.decimalColumn)
lf.radGrid.Columns.BoxColumn)
lf.radGrid.Columns.lorColumn)
看书的简笔画
lf.radGrid.Columns.Add(lf.checkBoxColumn)
lf.radGrid.Columns.Add(lf.ratingColumn)
lf.Controls.Add(lf.radGrid)
#Populate Rows
for index in range(10):
lf.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()
lf.ThemeName = fluent.ThemeName
lf.radGrid.ThemeName = fluent.ThemeName
订阅事件并实现您的业务逻辑
这是创建RadButton控件并订阅其Click事件的⽰例。
#Define RadButton1
lf.Controls.Button1)
然后,您将必须定义OnButtonClick逻辑。
def OnButton1Click(lf, nder, args):
课程教学研究2006年世界杯决赛#TODO OnClick logic
现在,我们使⽤上⼀个⽰例中的radGridView来看⼀个更复杂的事件相关⽰例。我们将在CellFormatting事件中实现⼀些逻辑,以便⽤不同的颜⾊填充GridViewRatingColumn中的单元格。 Rating单元内的值可以在0到100之间,如果值<50,我们将⽤红⾊填充这些单元,否则我们将使⽤Aqua颜⾊。我们可以使⽤以下代码实现此结果:
def OnRadGridCellFormatting(lf, nder, 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.Blue
args.CellElement.NumberOfColors = 1
args.CellElement.BackColor = Color.Aqua
医院管理制度
el :
args.CellElement.DrawFill = True
args.CellElement.ForeColor = Color.Yellow
args.CellElement.NumberOfColors = 1
args.CellElement.BackColor = Color.Red
el :
args.CellElement.RetValue(LightVisualElement.DrawFillProperty, ValueRetFlags.Local)
args.CellElement.RetValue(LightVisualElement.ForeColorProperty, ValueRetFlags.Local)
args.CellElement.RetValue(LightVisualElement.NumberOfColorsProperty, ValueRetFlags.Local)
args.CellElement.RetValue(LightVisualElement.BackColorProperty, ValueRetFlags.Local)
CellFormatting最终结果是这样的:
RadChartView的Little Bonus Setup ⽰例
正如在radGridView⽰例中看到的那样,使⽤Telerik控件⾮常容易,我们来看另⼀个使⽤BarSeries设置radChartView控件的⽰例。#Define RadChartView
lf.chartView = RadChartView()
lf.chartView.Size = Size(290, 160)
lf.chartView.Dock = DockStyle.Fill
#Define BarSeries and CategoricDataPoints
lf.barSeries = BarSeries("Performance", "ReprentativeName")
lf.barSeries.Name = "Q1"
lf.categoricDataPoint1 = CategoricalDataPoint(177, "Harley")
lf.categoricDataPoint2 = CategoricalDataPoint(128, "White")
lf.categoricDataPoint3 = CategoricalDataPoint(143, "Smith")
lf.categoricDataPoint4 = CategoricalDataPoint(111, "Jones")
lf.barSeries.DataPoints.Add(lf.categoricDataPoint1)
lf.barSeries.DataPoints.Add(lf.categoricDataPoint2)
lf.barSeries.DataPoints.Add(lf.categoricDataPoint3)
lf.barSeries.DataPoints.Add(lf.categoricDataPoint4)
lf.chartView.Series.Add(lf.barSeries)六色花
lf.Controls.Add(lf.chartView)
结果与您期望的Telerik UI for WinForms应⽤程序⼀样。