Ich versuche, eine einfache GUI mit WPF in VS2017 zu erstellen. Ich habe versucht, Code nach einer MessageBox zu zeigen, nachdem Button generieren:Message Box in IronPython mit WPF
import wpf
from System.Windows import MessageBox
def generate_Btn_Click(self, sender, e):
MessageBox.Show("hi")
und es wird sich zeigen, wenn ich auf die Schaltfläche generieren klicken, aber, wenn ich versuche, eine if-Anweisung hinzufügen, bevor MessageBox.Show()
:
def generate_Btn_Click(self, sender, e):
if A == None:
MessageBox.Show("Message1!")
else:
MessageBox.Show("Message2!")
Nach dem Klicken auf die Schaltfläche "Generate" wird keine MessageBox angezeigt und das Fenster wird geschlossen. Meine Frage ist, wie man MessageBox in IronPython mit WPF verwendet. Ein einfaches Beispiel, die nicht funktionieren, wenn ich die Taste drücken, ist wie folgt:
import wpf
from System.Windows import MessageBox
from System.Windows import Application, Window
class MyWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'IronPython5.xaml')
str1 = ""
def Button_Click(self, sender, e):
if str1 == "":
MessageBox.Show("msg1")
else:
MessageBox.Show("msg2")
pass
if __name__ == '__main__':
Application().Run(MyWindow())
Dies ist die XAML:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="IronPython5" Height="300" Width="300">
<Grid>
<Button Content="Button" HorizontalAlignment="Left" Margin="159,238,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
</Grid>
</Window>
'wenn A == None:' das A einen Fehler aus, es sei denn, es etwas in Ihrem Code bezieht? – PRMoureu
@PRMoureu es bezieht sich auf eine Variable und ist gültig. Ich habe extra Codes gelöscht, um es sauber zu machen. Ich benutze A in anderen Teilen des Codes und ist in Ordnung. – 1chenar
ist 'A' eine globale Variable? – denfromufa