Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 12

Запрос данных из Frame

22.09.2020, 20:58. Показов 823. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доврый вечер!

Возникла следующая проблема: мне надо при помощи кнопки запустить другой файл и передать в него данные. Ниже кнопка которая начинает процесс:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def BLaunch( self, event ):
 
        global vdr
        global vhr
 
        vdr = int ( self.m_textCtrl1.GetValue() ) # Диаметр аппарата
        vhr = int ( self.m_textCtrl2.GetValue() ) # Высота аппарата
        vvr = float ( self.m_textCtrl3.GetValue() ) # Объем жидкости
        cvr = vhr * 10**-3 * ( 3.14 * ( vdr * 10**-3 / 2 ) ** 2 ) # Проверка вводимого объема жидкости
 
        if vvr > cvr:
            self.m_textCtrl4.AppendText( '\nОбъем жидкости превышает объем аппарата!\n\n' )
            return
 
        self.m_textCtrl4.AppendText( 'Расчет запущен.\nИдет построение модели.\n' )
 
        launch = subprocess.call( 'bildmodel.py', shell=True )
        if launch == 0:
            msg = 'Модель построена.\n'
            self.m_textCtrl4.AppendText( msg )
        else:
            msg = '\nОшибка вычислительной программы!\n\n'
            self.m_textCtrl4.AppendText( msg )
Тестовый запрос данных из другого файла:

Python
1
2
3
import calculation
 
print ( calculation.vdr, calculation.vhr )
После нажатия кнопки, он открывает окно ввода данных, а мне надо чтобы от просто отработал и передал данные обратно в форму (окно ввода данных)

Буду благодарен за любую помощь
Вложения
Тип файла: rar calculator.rar (2.1 Кб, 1 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.09.2020, 20:58
Ответы с готовыми решениями:

Обновление данных на Frame из другого Frame
Помогите реализовать: есть MainFrame и SettingsFrame. Нужно что бы при нажатии Button на SettingsFrame обновилась (перерисовалась) таблица...

Сделать поиск в одном frame, а результат поиска показать на другом frame
Добры день. Затеял я поиск на своём сайте. Дело в том что проект у меня frame и мне надо сделать поиск в одном frame(верхнем frame) а...

Websocket frame: Как правильно построить frame byte array?
Доброго дня. Пытаюсь написать свою имплементацию Websocket, но застрял на построении frame. Вот структура frame согласно спецификации...

8
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 12
22.09.2020, 22:53  [ТС]
Даже такой вид почему-то вызывает окно

Python
1
2
3
4
from calculation import vdr
from calculation import vhr
 
print ( vdr, vhr )
Добавлено через 1 час 38 минут
В общем решил сделать базу данных. Как оказалось это даже удобней

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    def BLaunch( self, event ):
 
        vdr = int( self.m_textCtrl1.GetValue() ) # Диаметр аппарата
        vhr = int( self.m_textCtrl2.GetValue() ) # Высота аппарата
        vvr = float( self.m_textCtrl3.GetValue() ) # Объем жидкости
        cvr = vhr * 10**-3 * ( 3.14 * ( vdr * 10**-3 / 2 ) ** 2 ) # Проверка вводимого объема жидкости
 
        if vvr > cvr:
            self.m_textCtrl4.AppendText( '\nОбъем жидкости превышает объем аппарата!\n\n' )
            return
 
        self.m_textCtrl4.AppendText( 'Расчет запущен.\nИдет построение модели.\n' )
 
        db = open('database.txt', 'w')
        db.write( str( vdr ) )
        db.write( '\n' )
        db.write( str( vhr ) )
        db.write( '\n' )
        db.close()
 
        launch = subprocess.call( 'bildmodel.py', shell=True )
        if launch == 0:
            msg = 'Модель построена.\n'
            self.m_textCtrl4.AppendText( msg )
        else:
            msg = '\nОшибка вычислительной программы!\n\n'
            self.m_textCtrl4.AppendText( msg )
В другом файле:

Python
1
2
3
4
5
db = open('database.txt', 'r')
vrd = int(db.readline() )
vhd = int(db.readline() )
 
print( vrd + vhd )
Но вопрос не закрыт, жду предложений
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
23.09.2020, 10:24
Hi_I_MartinE, какой кнопки, что за файл и куда его запустить?
0
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 12
23.09.2020, 12:28  [ТС]
Есть окошко в которые вводятся параметры, созданное на основе wx. Затем после нажатия на кнопку "Начать расчет" запускается другой скрипт и запрашивает данные из формы
Я же приложил файлы можно посмотреть как, что работает
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
23.09.2020, 12:44
Hi_I_MartinE, запускать чужой код, разбираться в нём, при том, что даже неясно, что нужно? Вы слишком хорошо о нас думаете. Мы тут те ещё лентяи

А зачем вам база данных? Передать в функцию два значения? БД не для этого.
Я так понял, в bildmodel.py у вас очень умный код по расчёту чего-то? А зачем вы запускаете его через subrpоcess?
0
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 12
23.09.2020, 12:57  [ТС]

Ну не совсем умный, там просто будет при помощи, FreeCAD отрисовываться модель по произведенным вычислениям, потом это все будет передаваться на расчет, потом в другой скрипт и в результате получится ответ, который вернеться обратно в форму
По поводу sp просто так захотелось
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
23.09.2020, 14:36
Почему не просто функцию, передать туда параметры и получить результат?
0
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 12
23.09.2020, 21:20  [ТС]
Можно попробовать, но мне больше нравиться этот вариант
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
24.09.2020, 09:38
Hi_I_MartinE, во-первых, это overkill. Другой процесс тут абсолютно не нужен, тем более, что вы пока даже не знаете, как получить его результат.

Во-вторых, вы и так сначала написали говнокод (sorry - sad but true), используя глобальные переменные. Глобальные - на процесс. Затем ещё больше наговнокодили с базой данных - переменные становятся глобальными уже между процессами (файл).

Есть принцип - видимость сущностей должна быть минимальной.

Делайте по простому, через функцию, и будет вам счастье. Всякие выкрутасы имеет смысл делать, когда простого функционала недостаточно. Без элементарного умения - обернуть код в функцию, импортировать, вызвать - не суйтесь в сложные области.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.09.2020, 09:38
Помогаю со студенческими работами здесь

Как программно добавить Frame в другой существующий на форме frame?
Делаю это так: На форме лежит Frame1. на инициализации формы.... Dim mFrame As Object

Передача информации из одного Frame в другой Frame
Здравствуйте! У меня следующий вопрос: На окне есть первый Frame в котором несколько страниц. На одной из страниц первого Frame, а...

In a frame because it set 'X-Frame-Options' to 'SAMEORIGIN
http://rghost.ru/7hxl2VcQS.view Как ето исправить?

Как получить массив wav данных без плагинов, с указанием frame
Добрый день. Подскажите, как можно загрузить в переменную массив данных из wav файла? есть Python код, где выполняется следующие...

Frame, Chrome, Blocked a frame with origin "null"
Здавствуйте, имеется следующий файл: <html> <head </head> <frameset cols="20%, *" > <frame src=panel.html scrolling=yes...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru