
Однако я изо всех сил пытаюсь настроить обработчики событий. для управления выбором для каждой ориентации сетки (X и Y) и предотвращения выбора пользователем одних и тех же значений для X и Y.
Код Xaml
код Python
class Grids(Window):
def __init__(self):
# wpf.LoadComponent(self, StringReader(Grids.LAYOUT))
# # Symbol sets
self.all_symbols_numeric = ['1', '2', '3', '4', '5'] # Numeric
self.all_symbols_alpha = ['A', 'B', 'C', 'D', 'E'] # Alphabetic
self.selected_symbol_x = None
self.selected_symbol_y = None
self.data = {}
self.ShowDialog()
def _collect_input_data(self):
"""Collect and convert input data from the UI"""
# Identify which key has missing or invalid input and alert the user
if not self.input_Lx.Text:
forms.alert("Please enter a valid value for : Lx")
elif not self.input_Ly.Text:
forms.alert("Please enter a valid value for : Ly")
elif not self.input_extension.Text:
forms.alert("Please enter a valid value for : e")
elif not self.input_dx.Text:
forms.alert("Please enter a valid value for : dx")
elif not self.input_dy.Text:
forms.alert("Please enter a valid value for : dy")
elif self.select_symbol_x.ItemsSource is None:
forms.alert("Please select symbols for : Sx")
elif self.select_symbol_y.ItemsSource is None:
forms.alert("Please select symbols for : Sy")
if self.select_symbol_x.SelectedItem == self.select_symbol_y.SelectedItem:
forms.alert("Symbols for Lx and Ly must be different.")
else:
try:
self.data = {
"Lx": _input_to_meters(self.input_Lx.Text),
"Ly": _input_to_meters(self.input_Ly.Text),
"e": _input_to_meters(self.input_extension.Text),
"dx": _input_to_meters(self.input_dx.Text),
"dy": _input_to_meters(self.input_dy.Text),
"Sx": [self.select_symbol_x.SelectedItem],
"Sy": [self.select_symbol_y.SelectedItem]
}
except ValueError:
forms.alert(
"Invalid input detected. "
"Please ensure all inputs are numeric where required."
)
def OK_Clicked(self, sender, e):
self._collect_input_data()
# self.data
if not self.data:
return
self.Close()
def Cancel_Clicked(self, sender, e):
self.Close()
Подробнее здесь: https://stackoverflow.com/questions/792 ... m-combobox
Мобильная версия