這篇文章教你開發(fā)一個Python桌面應用程序(這篇文章教你開發(fā)一個python桌面應用程序英語)
點擊“了解更多”獲取工具下載
IronPython和最新的Visual Studio 2019使這一切成為可能,它們使Python桌面應用程序可以與WinForms控件一起使用。 更重要的是,Telerik UI For WinForms套件擁有現(xiàn)成的一些功能來幫助您實現(xiàn)想要的功能!
Iron Python
IronPython是Python強大的開源版本,它是在Microsoft .NET框架上運行的Python編程語言的改編,IronPython可以使用.NET Framework和Python庫,而其他.NET語言也可以輕松使用Python代碼。
安裝最新版本的IronPython之后,您可以打開Visual Studio 2019,該Studio帶有用于“ IronPython Windows Forms Application”的內置模板項目,并創(chuàng)建您的第一個應用程序。
如何將Telerik RadGridView與現(xiàn)代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 *
現(xiàn)在,讓我們看一下如何添加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
訂閱事件并實現(xiàn)您的業(yè)務邏輯
這是創(chuàng)建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
現(xiàn)在,我們使用上一個示例中的radGridView來看一個更復雜的事件相關示例。 我們將在CellFormatting事件中實現(xiàn)一些邏輯,以便用不同的顏色填充GridViewRatingColumn中的單元格。 Rating單元內的值可以在0到100之間,如果值<50,我們將用紅色填充這些單元,否則我們將使用Aqua顏色。 我們可以使用以下代碼實現(xiàn)此結果:
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應用程序一樣。