Я преподаю вводный класс для программирования и разработки графического интерфейса с использованием Python и нашел, что наименее подавляющее решение для новых студентов для программирования - использовать Visual Studio для разработки графического интерфейса.
В то время как опыт разработки графического интерфейса с С# и VB приятный, я не мог найти способ сделать то же самое с IronPython. Я установил IronPython 2.7.1, который включает инструменты Visual Studio, и создал проект WPF IronPython.
Я могу использовать конструктор форм WPF так же, как VB и С#, однако я не мог найти удобный способ (то есть понятный для студентов), в котором могли бы быть доступны элементы GUI. Например, с помощью VB вы можете ссылаться на элементы, основанные на их имени, а затем вы можете изменять свойства внутри них. Лучшее, что я мог сделать с IronPython (которое я не планирую показывать студентам), следующее:
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())
Я заметил, что элементы GUI не получают имя и сбой Visual Studio, когда я пытаюсь вручную модифицировать XAML для обозначения элементов. Вот сгенерированный XAML для простого кадра с кнопкой и текстовой областью:
<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>
Любая помощь в облегчении этого для студентов будет оценена по достоинству. Я также открыт для других предложений для разработки графического интерфейса Python, которые предлагают опыт, похожий на Visual Studio.