Fermer

décembre 22, 2020

Interface utilisateur Telerik pour WinForms avec Python pour applications de bureau


Que vous ayez besoin d'une interface graphique sophistiquée pour votre application Python, que vous ayez une application de bureau Python existante qui nécessite des fonctionnalités supplémentaires ou que vous soyez principalement intéressé par un thème différent qui rafraîchira votre application, nous sommes là pour vous. Tout cela est possible avec l'aide de Telerik UI pour les contrôles WinForms.

Vous avez bien lu! IronPython et le dernier Visual Studio 2019 ont rendu tout cela possible! Ils permettent aux applications de bureau Python de fonctionner avec les contrôles WinForms. Et surtout, travaillez avec la Telerik UI pour la suite WinForms et tous les goodies qui sortent du sac.

Iron Python

IronPython est une puissante variante open-source de Python . Il s'agit d'une adaptation du langage de programmation Python qui s'exécute sur le framework .NET de Microsoft. IronPython peut utiliser les bibliothèques .NET Framework et Python, et d'autres langages .NET peuvent utiliser le code Python tout aussi facilement.

Après avoir installé la dernière version d'IronPython, vous pouvez ouvrir Visual Studio 2019 qui vient avec un projet de modèle intégré pour «Application IronPython Windows Forms» et créez votre première application.

 Create_a_New_Project "title =" Create_a_New_Project "/></p data-recalc-dims=

 Solution_explorer" title = "Solution_explorer" /></p data-recalc-dims=

Comment intégrer Telerik RadGridView dans votre application avec un thème moderne Fluent appliqué

Passons maintenant à l'utilisation des contrôles Telerik. Tout d'abord, vous devez installer l'interface utilisateur Telerik pour la suite de composants d'interface utilisateur WinForms – vous pouvez la télécharger à partir d'ici . Ajoutez ensuite les assemblys Telerik requis dans votre dossier de projet pour utiliser les contrôles RadGridView, FluentTheme et RadChartView (alerte spoiler – nous en aurons besoin pour plus tard) pour WinForms.

 telerik_libraries "title =" telerik_libraries "/> [19659005]
Pour référencer les binaires dans l'application, importez la bibliothèque clr, puis utilisez les méthodes <a href= addReference . Vous pouvez voir ici comment ajouter des références et utilisations dont nous aurons besoin pour notre exemple d'application.

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 ([196590] 17] «Telerik.WinControls.GridView» )

from System.Drawing import * [19659002] de System.Windows.Forms import *

from Telerik.WinControls import ] *

de Telerik.WinControls.UI import *

from Telerik.Charting import *

from Telerik.WinControls.Themes import *

Voyons maintenant comment ajouter un Contrôle radGridView, contenant un ensemble de colonnes différentes de notre formulaire.

#Define RadGridView

self .radGrid = RadGridView ()

auto .radGrid.BestFit Colonnes ()

self .radGrid.ForeColor = Color.Black

self . radGrid.Dock = DockStyle.Fill

#Define Columns

self .decimalColumn = GridViewDecimalColumn ()

self .textBoxColumn = GridViewTextBoxColumn () [1965918002] [1945918002] self .colorColumn = GridViewColorColumn ()

self .checkBoxColumn = [1965901390] GridViewCheckBoxColumn () [194514] 19659002] auto .ratingColumn = GridViewRatingColumn ()

self .decimalColumn.Head = "DecimalColumn "

soi .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 ([19659127] self .checkBoxColumn)

self .radGrid.Columns.A dd ( 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 ))

Le résultat de cet exercice est un radGridView qui a les colonnes suivantes: GridViewDecimalColumn, GridViewTextBoxColumn, GridViewColorColumn, GridViewCheckBoxColumn, GridViewRatingColumn.

 RadGridView_with_Python "title =" RadGridView_with_Python "/></p data-recalc-dims=

Si vous souhaitez appliquer un thème à vos contrôles, comme le montre l'image, cela peut être fait aussi simple que cela.

fluent [19659043] = FluentTheme ()

self .ThemeName = fluent.ThemeName

self .radGrid.ThemeName = fluent.ThemeName

S'abonner à des événements et mettre en œuvre votre logique d'entreprise

Si vous vous demandez comment l'abonnement à des événements fonctionne, c'est plus facile que vous ne le pensez . Voici un exemple de création d'un contrôle RadButton et d'abonnement à son événement Click .

#Define RadButton1

self .myButton1 = RadButton ()

self .myButton1.Text = "RadButton1"

self .myButton1.Click + = self .OnButton1Click

self .Controls.Add ([19659127] self .myButton1)

Ensuite, comme vous le savez, vous devrez définir votre logique OnButtonClick.

def OnButton1Click ( self sender, args):

Logique #TODO OnClick

Jusqu'ici tout va bien. Examinons maintenant un exemple plus complexe lié aux événements en utilisant le radGridView de notre exemple précédent. Nous allons implémenter une logique dans l'événement CellFormatting afin de remplir les cellules de GridViewRatingColumn avec des couleurs différentes. La valeur à l'intérieur des cellules Rating peut être comprise entre 0 et 100. Si la valeur est <50, nous remplirons ces cellules en rouge, sinon nous utiliserons la couleur Aqua. Nous pouvons obtenir ce résultat avec le code suivant.

def OnRadGridCellFormatting ( self sender, args):

if [19659013] args est et non Aucun :

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

if args.CellElement.RowInfo.Cells [ 4 ]. Value n'est pas Aucun :

if args.CellElement.Value> 50 :

args.CellElement.DrawFill = True

args.CellElement.ForeColor = [19659013] Color.Blue

args.CellElement.NumberOfColors = 1

args. CellElement.BackColor = Color.Aqua

else :

[19659254] args.CellElement.DrawFill = True

args.CellElement.ForeColor = Color.Yellow

args.CellElement.NumberOfColors = 1

args.CellElement.BackColor = Couleur .Red

else :

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

args.CellElement.ResetValue (LightVisualElement.Flags3. 19659002] args.CellElement.ResetValue (LightVisualElement. ValueResetFlags.Local)

Le résultat final de notre effort CellFormatting ressemble à ça.

 RadGridView_CellFormatting "title =" RadGridView_CellFormatting "/></p data-recalc-dims=

Un petit exemple de configuration supplémentaire avec RadChartView

Utilisation de Telerik Controls

aussi simple que vous l'avez vu dans l'exemple radGridView. Examinons un autre exemple de configuration du contrôle radChartView avec BarSeries.

#Define RadChartView

self .chartView = RadChartView ()

self .chartView.Size = Size ( 290 160 )

self .chartView.Dock = DockStyle.Fill

#Define BarSeries and CategoricDataPoints [19659002] self .barSeries = BarSeries ( "Performance" "RepresentativeName" )

self .barSeries.Name = "Q1"

self .categoricDataPoint1 = CategoricalDataPoint ([19659155] 177 "Harley" )

self .categoricDataPoint2 = CategoricalDataPoint ( 128 "White" ) [19659002] soi .categoricDataPoint3 = CategoricalDataPoint ( 143 "Smith" )

self .categoricDataPoint4 = CategoricalDataPoint ( 111 "Jones" )

self [19659018] .barSeries.DataPoints.Add ( self .categoricDataPoint1)

self .barSeries.DataPoints.Add ( self .categoricDataPoint2 )

self .barSeries.DataPoints.Add ( self .categoricDataPoint3)

self .barSeries.DataPoints.Add ( self .categoricD ataPoint4)

self .chartView.Series.Add ( self .barSeries)

self [19659018] .Controls.Add ( self .chartView)

Le résultat est celui que vous pourriez vous attendre d'une interface utilisateur Telerik standard pour une application WinForms.

 RadChartView_with_Python "title =" RadChartView_with_Python "/></p data-recalc-dims=

Résumé

Voici une brève introduction à la combinaison du bureau Python Interface graphique et interface utilisateur Telerik pour la suite WinForms. N'hésitez pas à partager votre expérience avec l'intégration de l'interface utilisateur Telerik pour WinForms dans vos projets Python.

N'hésitez pas à nous laisser un message dans la section commentaires ci-dessous pour expliquer comment cela s'est passé avec nos composants ou envoyez vos commentaires directement sur notre Portail de commentaires . Vous pouvez télécharger la dernière version de Telerik UI pour WinForms à partir de votre compte dès aujourd'hui, ou si vous êtes nouveau dans la suite, commencez une journée gratuite de 30 jours essai aujourd'hui:

Démarrer mon essai





Source link