0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
|
|
1 | |
Несколько окон в GUI Matlab. Ввод данных в одном из них и использование в другом28.03.2014, 16:43. Показов 12996. Ответов 6
Метки нет (Все метки)
Доброго времени суток!
Помогите пожалуйста, сам не могу догадаться. Имеется главное графическое окно программы (1.fig) и основной m-файл(1.m). На нем кнопка. По нажатию на эту кнопку открывается второе окно (2.fig) со своим m-файлом(2.m) с полями Edit и одной кнопкой. По задумке, числа введенные в эти поля по нажатию на кнопку, должны записываться в переменные в коде m-файла (2.m) и быть доступны для использования в основной программе (1.m). В чем тонкость? Если в 2.m в функции обработки нажатия кнопки написать m1=str2double(get(handles.Edit1,'String')) То по нажатию на кнопку вылетает следующая ошибка Attempt to reference field of non-structure array. Прошу помощи. Заранее спасибо!
0
|
28.03.2014, 16:43 | |
Ответы с готовыми решениями:
6
Объектно-ориентированное программирование в MATLAB GUI и проверка на ввод некорректных данных Несколько окон в одном Несколько окон в одном GUI на PyQt. Несколько виджетов в одном окне |
120 / 113 / 30
Регистрация: 29.03.2012
Сообщений: 252
|
||||||
28.03.2014, 17:01 | 2 | |||||
используй глобальные переменные. В каждой функции GUI, в которой ты хочешь обратиться к глобальной переменной, пиши:
0
|
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
|
|
28.03.2014, 17:35 [ТС] | 3 |
kav0221, Пробовал самым первым, не в этом дело.
Что интересно, если допустим запустить напрямую файл 2.m, то программа работает как надо. Значения из полей Edit записываются в переменные. т.е. получается второе окно, запущенное из под первого, не работает как надо. Структура handle в нем пустая. Добавлено через 5 минут Как "заставить" программу при открытии 2ого окна, записать указатели на все существующие в этом окне объекты?
0
|
120 / 113 / 30
Регистрация: 29.03.2012
Сообщений: 252
|
|
28.03.2014, 17:36 | 4 |
Можешь выложить архив со своими окнами и подробное описание как все должно работать?
0
|
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
|
|
28.03.2014, 22:42 [ТС] | 5 |
Смысл следующий:
Запускается главное окно Gui_main.fig. После нажатия кнопки Задать критерий качества, появляется окно с полями Edit. В которые необходимо ввести нужные значения и записать их в определенные переменные, которые по нажатию кнопки ОК, должны быть доступны для дальнейших операций в первом окне( в m-файле gui_main.m). Проблема в том, что если оперировать 2 окном, вызванным из первого основного, то получается что поля edit как бы нигде не объявлены в handles и поэтому из них невозможно списать значения.
0
|
120 / 113 / 30
Регистрация: 29.03.2012
Сообщений: 252
|
||||||||||||||||
29.03.2014, 19:17 | 6 | |||||||||||||||
Сообщение было отмечено Seris2 как решение
Решение
С глобальными переменными все прекрасно работает. Что поменял:
С открытием главного окна создается некая глобальная переменная АА, которой присваивается значение АА=[]; При нажатии на кнопку KritStabEdit_Btn мы отображаем переменную АА и открываем окно Krit_Stab. Тут важная тонкость, открывать окно нужно ИМЕННО ТАК:
Итак мы присвоили глобальной переменной АА значение с поля t2_Edit, и теперь при нажатии на кнопку KritStabEdit_Btn в командное окно выводится уже новое значение переменной АА, равное тому, что мы ввели в поле t2_Edit. Собственно что и требовалось сделать=)
4
|
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
|
|
30.03.2014, 13:06 [ТС] | 7 |
kav0221,
Спасибо огромнейшее! Действительно работает. Не знал про такую тонкость, что будет открывать новое окно просто вписав его имя. Буду двигаться дальше в разработке)
0
|
30.03.2014, 13:06 | |
30.03.2014, 13:06 | |
Помогаю со студенческими работами здесь
7
Перегрузка оператора индексации в одном классе и использование в другом Несколько ОС на одном компе. Как одну из них переустановить, не повредив остальные? GUI: Проверка на ввод некорректных данных Например у меня есть два класса. В одном из них несколько строк.Как во втором классе создать условие что если Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |