首頁>技術>

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 clrimport randomclr.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 RadGridViewself.radGrid = RadGridView() self.radGrid.BestFitColumns()self.radGrid.ForeColor = Color.Blackself.radGrid.Dock = DockStyle.Fill #Define Columnsself.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 Rowsfor 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 RadButton1self.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 = Trueargs.CellElement.ForeColor = Color.Blueargs.CellElement.NumberOfColors = 1args.CellElement.BackColor = Color.Aquaelse :args.CellElement.DrawFill = Trueargs.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 RadChartViewself.chartView = RadChartView()self.chartView.Size = Size(290, 160)self.chartView.Dock = DockStyle.Fill#Define BarSeries and CategoricDataPointsself.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應用程式一樣。

18
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 怎樣用3分鐘搭建 Python 人臉識別系統