点击获取工具 >>
IronPython 和最新的 Visual Studio 2019 使这所有成为可能,它们使 Python 桌面应用程序能够与 WinForms 控件一起应用。更重要的是,Telerik UI For 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 库,而后应用 addReference 办法。在这里,您能够看到如何增加示例应用程序所需的参考和用法。
`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.Black
self.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.OnButton1Click
self.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.Blue
args.CellElement.NumberOfColors = 1
args.CellElement.BackColor = Color.Aqua
else :
args.CellElement.DrawFill = True
args.CellElement.ForeColor = Color.Yellow
args.CellElement.NumberOfColors = 1
args.CellElement.BackColor = Color.Red
else :
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”, “RepresentativeName”)
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 应用程序一样。