Обновление страниц на TabControl
-
- assistant
- Сообщения: 132
- Зарегистрирован: 23 ноя 2007, 16:44
- Награды: 1
- Версия LabVIEW: 7.1;8.5.1
- Откуда: Москва
- Благодарил (а): 2 раза
Обновление страниц на TabControl
Мне нравится создавать интерфейс программы с помощью TabControl. На первую страницу я выношу элементы управления, а на другие - элементы визуализации. К сожалению, при таком построении графики на других страницах не обновляются при активной первой странице и измененении значений в органах управления на первой странице. В прикрепленном файле дается пример, который это иллюстрирует. При изменении количества отчетов с 160 например до 1600 и запуске программы при активной первой странице график на второй странице не обновляется. В реальных программах у меня несколько страниц с графиками (графики исходных сигналов, графики промежуточных и окончательных результатов). Подскажите, пожалуйста, как сделать так, чтобы при активной первой странице, изменении на ней значений элементов управления и запуске программы обновлялись графики на других страницах.
- Вложения
-
- Change_Graph.zip
- (22.33 КБ) 439 скачиваний
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
1. Ну начнём с того что я не очень понял саму проблему, хотя по-моему похожие странности я замечал. С другой стороны если график не показывается пользователю, то зачем его вообще обновлять?
2. Хочу сказать что XY-Plot является лучшим выбором из трёх видов представления графиков. Сам Waveform Graph является тем же XY-Plot-ом, подогнанным для представления сигнала. Если узнать с помощью SizeArray количество элементов в эррей X, то можно сделать эррей от 0 до этого количества, умножить каждый элемент на dt и прибавить t0, то можно представить то же самое на XY-Plot.
3. Построение программы на Tab Control не лучший вариант, но у каждого свой вкус. Вариантом получше является Sub Panel (правда я с ним не работал) или же разделение управления и представления данных на два разных окна (этим я всегда и пользуюсь).
4. Что касается блок диаграммы, то я не понимаю зачем нужен Frame Sequence.
2. Хочу сказать что XY-Plot является лучшим выбором из трёх видов представления графиков. Сам Waveform Graph является тем же XY-Plot-ом, подогнанным для представления сигнала. Если узнать с помощью SizeArray количество элементов в эррей X, то можно сделать эррей от 0 до этого количества, умножить каждый элемент на dt и прибавить t0, то можно представить то же самое на XY-Plot.
3. Построение программы на Tab Control не лучший вариант, но у каждого свой вкус. Вариантом получше является Sub Panel (правда я с ним не работал) или же разделение управления и представления данных на два разных окна (этим я всегда и пользуюсь).
4. Что касается блок диаграммы, то я не понимаю зачем нужен Frame Sequence.
- Вложения
-
- Change Graph.vi
- (24.6 КБ) 386 скачиваний
-
- WaveformToXY.PNG (12.08 КБ) 12144 просмотра
-
- assistant
- Сообщения: 132
- Зарегистрирован: 23 ноя 2007, 16:44
- Награды: 1
- Версия LabVIEW: 7.1;8.5.1
- Откуда: Москва
- Благодарил (а): 2 раза
Отвечаю на вопросы:
1. Обновлять нужно для того, посмотреть результаты работы (промежуточные, окончательные и др.) при изменении значений контролов. Если программа маленькая, то можно переключиться на нужную страницу, а если выполняется долго, то это плохо. Т.е. хотелось бы следующее: изменил значения на странице с контролами, запустил, посмотрел результаты на нужных вкладках.
2. Мне нужно посмотрель, в чем разница, раньше я с помощью функций Wafeform делал это на Waveform Graph, вообщем, посмотрю.
3. С Sub Panel не работал, даже не знаю, что это такое. Tab Control мне нравится, я могу сделать любое количество графиков любых размеров. Разделением управления и представления данных на два разных окна раньше не пользовался. Как это сделать и можно ли разместить в окне представления данных много графиков нужных размеров?
4. Frame Sequence не нужен, просто у меня есть простой шаблон из двух страниц и Frame Sequence (для сложных программ с последовательным выполнением). Я его просто не удаляю.
Я и дальше собираюсь использовать страницы, так что решение этой задачи для меня очень важно (реальная программа достаточно долго выполняется и требует удобной визуализации)
1. Обновлять нужно для того, посмотреть результаты работы (промежуточные, окончательные и др.) при изменении значений контролов. Если программа маленькая, то можно переключиться на нужную страницу, а если выполняется долго, то это плохо. Т.е. хотелось бы следующее: изменил значения на странице с контролами, запустил, посмотрел результаты на нужных вкладках.
2. Мне нужно посмотрель, в чем разница, раньше я с помощью функций Wafeform делал это на Waveform Graph, вообщем, посмотрю.
3. С Sub Panel не работал, даже не знаю, что это такое. Tab Control мне нравится, я могу сделать любое количество графиков любых размеров. Разделением управления и представления данных на два разных окна раньше не пользовался. Как это сделать и можно ли разместить в окне представления данных много графиков нужных размеров?
4. Frame Sequence не нужен, просто у меня есть простой шаблон из двух страниц и Frame Sequence (для сложных программ с последовательным выполнением). Я его просто не удаляю.
Я и дальше собираюсь использовать страницы, так что решение этой задачи для меня очень важно (реальная программа достаточно долго выполняется и требует удобной визуализации)
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
- assistant
- Сообщения: 132
- Зарегистрирован: 23 ноя 2007, 16:44
- Награды: 1
- Версия LabVIEW: 7.1;8.5.1
- Откуда: Москва
- Благодарил (а): 2 раза
Странно! Вот что у меня: F = 537, #s=160, Fs = 16000, Amp = 10. Активна Page1. Запускаю программу, переключаюсь на Page2, вижу чуть более 5 периодов. Запускаю при активной второй странице, все нормально, та же картина. Опять ативна первая страница, устанавливаю #s=1600 (в 10 раз больше), запускаю программу. Переключаюсь на страницу 2 и вижу опять ту же картину (чуть более 5 периодов). Запускаю программу при активной второй странице, вижу очень много периодов. Вывод: рисунок обновляется только при активной странице с этим рисунком. На всякий случай прикрепляю файл, на котором экспериментировал.
Запустил твой пример с XYGraph, особых преимуществ перед Waveform не заметил.
Запустил твой пример с XYGraph, особых преимуществ перед Waveform не заметил.
- Вложения
-
- Change Graph.vi
- (98.69 КБ) 389 скачиваний
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
- assistant
- Сообщения: 132
- Зарегистрирован: 23 ноя 2007, 16:44
- Награды: 1
- Версия LabVIEW: 7.1;8.5.1
- Откуда: Москва
- Благодарил (а): 2 раза
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Попробовал у себя. Всё делал как ты сказал, глюк отсутствует (версия 8.0.1)
Какую версию LabVIEW ты используешь? Посмотри в баглистинге, если что обратись в офис НИ.
Могу ещё дома на 7.1 попробовать, посмотрю может увижу глюк, напишу.
Попробуй взять совсем новый график, может ты где нибудь в свойствах переставил что нибудь и забыл.
Какую версию LabVIEW ты используешь? Посмотри в баглистинге, если что обратись в офис НИ.
Могу ещё дома на 7.1 попробовать, посмотрю может увижу глюк, напишу.
Попробуй взять совсем новый график, может ты где нибудь в свойствах переставил что нибудь и забыл.
-
- assistant
- Сообщения: 132
- Зарегистрирован: 23 ноя 2007, 16:44
- Награды: 1
- Версия LabVIEW: 7.1;8.5.1
- Откуда: Москва
- Благодарил (а): 2 раза
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Ну что, остановимся на этом или будем копать дальше и искать альтернативу? У меня правда только 6.1 и только для линукса имеется, посмотрю что будет.
И так, пробовал на 6.1для линукса, на 7.1, на 8.0.1 и на 8.2 и нигде глюка не наблюдается, сорри.
Наверное поэтому тебе на другух форумах никто и не отвечает, потому что не врубаются о чём ты спрашиваеш, т.к. шестая версия LabVIEW уже прошлый век.tumanovalex писал(а):Да, на 8 версии такого нет. Я использую обычно LabView 6.0, он быстрый и маленький без лишних красивостей. Раньше я глюков не замечал, это первый. Спасибо, что проверил. Теперь я буду знать особенности 6 версии.
И так, пробовал на 6.1для линукса, на 7.1, на 8.0.1 и на 8.2 и нигде глюка не наблюдается, сорри.
-
- assistant
- Сообщения: 132
- Зарегистрирован: 23 ноя 2007, 16:44
- Награды: 1
- Версия LabVIEW: 7.1;8.5.1
- Откуда: Москва
- Благодарил (а): 2 раза