Обработчики событий для изменения выбора из ComboboxPython

Программы на Python
Ответить
Anonymous
 Обработчики событий для изменения выбора из Combobox

Сообщение Anonymous »

Я реализую пользовательский интерфейс с помощью WPF для создания сеток в Revit. Чтобы позволить пользователям переключаться между числовыми значениями («1, 2, 3, ...») и буквенными значениями («A, B, C, ...») для имен сетки, я использовал ComboBox, как показано ниже.
Изображение

Однако я изо всех сил пытаюсь настроить обработчики событий. для управления выбором для каждой ориентации сетки (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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»