GUI-Entwicklung mit IronPython und Visual Studio 2010
Ich bin lehren einem Einführungskurs in die Programmierung und GUI-Entwicklung mit Python, und haben festgestellt, dass der zumindest überwiegende-Lösung für die Schüler neu zu Programmieren, ist die Verwendung von Visual Studio für die GUI-Entwicklung.
Während die GUI-Entwicklung Erfahrung mit C# und VB ist angenehm, ich konnte nicht einen Weg finden, das gleiche zu tun mit IronPython. Ich installierte IronPython 2.7.1 enthält die Visual Studio-tools und erstellt eine WPF IronPython-Projekt.
Kann ich mit einem WPF-Formular-designer einfach wie VB und C#, aber ich konnte nicht finden einen bequemen Weg (d.h., verständlich an die Studenten), in denen die GUI-Elemente zugegriffen werden konnte. Zum Beispiel mit VB, können Sie beziehen sich auf Elemente, die basierend auf Ihren Namen und dann können Sie das ändern der Eigenschaften in Ihnen. Das beste was ich tun konnte, mit IronPython (was ich nicht vor habe zu zeigen, um den Studenten), ist die folgende:
import wpf
from System.Windows import Application, Window
class MyWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'WpfApplication3.xaml')
def Button_Click(self, sender, e):
#This is the only way I could find in which I can
#access an element and modify its properties
self.Content.Children[1].Text += 'Hello World\n'
if __name__ == '__main__':
Application().Run(MyWindow())
Bemerkte ich, dass die GUI-Elemente nicht bekommen, einen Namen und Visual Studio stürzt ab, wenn ich versuche manuell zu ändern, die XAML-name-Elemente. Hier ist den generierten XAML-Code für ein einfaches frame mit einem button und text-Bereich:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WpfApplication3" Height="300" Width="300">
<Grid>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="103,226,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click" />
<TextBox Height="182" HorizontalAlignment="Left" Margin="24,21,0,0" VerticalAlignment="Top" Width="237" />
</Grid>
</Window>
Jede Unterstützung bei dieser einfacher für die Schüler und Schülerinnen geschätzt. Ich bin auch offen für Vorschläge für andere Python-GUI-Entwicklung, die bieten eine ähnliche Erfahrung wie Visual Studio.
InformationsquelleAutor der Frage pinstruct | 2011-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
In IronPython 2.7 der wpf.LoadComponent Methode wird der Draht alle Eigenschaften mit dem gleichen Namen wie das XAML-UI-Elemente. Wenn Sie mit IronPython 2.6 dann würden Sie brauchen, um den code zu verwenden, wie vorgeschlagen, durch WombatPM. Also mit IronPython 2.7, wenn Sie den folgenden XAML-Code:
Anschließend definieren Sie zwei Eigenschaften genannt, button und textbox, um den Zugriff auf die UI-Elemente:
In der Tat scheint es, können Sie den code vereinfachen, noch weiter durch das entfernen der Eigenschaft Definitionen:
Leider Visual Studio scheint den Absturz, wie Sie bereits gesehen haben, mit einem null-Verweis-Ausnahme, wenn Sie versuchen, Bearbeiten der XAML-Code und geben Sie die UI-Elemente einen Namen.
InformationsquelleAutor der Antwort Matt Ward
Benötigen Sie zu Fuß durch alle Objekte und erstellen einfacher/verständlicher Verweise mit einer Funktion wie.
Sehen http://www.ironpython.info/index.php/XAML_GUI_Events_Example für den obigen code und ein vollständiges Beispiel.
InformationsquelleAutor der Antwort WombatPM