Найти - Пользователи
Полная версия: Передача значений из QT5 в Python3
Начало » GUI » Передача значений из QT5 в Python3
1 2
Venus
Здравствуйте
а кто нить может по пальцам или на пальцах объяснить, как передать значения введёные в гуи в скрипт питона3 и по нажатию кнопки старт или стоп запускать-останавливать скрипт питона3
Your text to link here…
в интернете примеры работы с одним файлом(скриптом) а как с несколькими и передача значений из приложения в скрипт из скрипта вывод в гуи,не понимаю (
PEHDOM
Вообще вариантов несколько начиная с обычного импорта, exex-а и заканчивая subprocess.Popen-ом
можно написать простой скрипт и вызывать его с параметрами и парсить через sys.argv, getopt или optparse. А можно впихнуть его в функцию и вызывать соотвественно.
пример main.py:
 from PyQt4 import QtGui
import sys
import my_ext # импортируем наш внешний скрипт
class MainWindow(QtGui.QWidget):
    # ГУИ
    def __init__(self):
        super().__init__()
        layout = QtGui.QVBoxLayout(self)
        self.lineEdit =  QtGui.QLineEdit()
        layout.addWidget(self.lineEdit)
        okBtn = QtGui.QPushButton('Run script')
        layout.addWidget(okBtn)
        okBtn.clicked.connect(self.runScript)
        self.show()
    def runScript(self):
        param = self.lineEdit.text() # получаем данные введенные в лайнЕдит
        my_ext.myScript(param)       # запускаем "внешний" скрипт с параметром
app = QtGui.QApplication(sys.argv)
mw = MainWindow()
sys.exit(app.exec_())
my_ext.py:
 # наш внешний скрипт
def myScript(param):
    print('runing external script func with param', param)

Venus
PEHDOM
Вообще вариантов несколько начиная с обычного импорта, exex-а и заканчивая subprocess.Popen-омможно написать простой скрипт и вызывать его с параметрами и парсить через sys.argv, getopt или optparse. А можно впихнуть его в функцию и вызывать соотвественно.пример main.py:

а тут можно поподробней
def myScript(param):
print('runing external script func with param', param)
———-^вот это что значит ? ^ ——————–^а эт параметры(её не трогать или какието параметры чего то ввести надо?

я правельно подумал что в def myScript(param):, надо будет прописать чтот типо этого
def myScript(param):
n=int(n)
x=int(x)
y=x+n
print('окошечко с суммой',param)
ну и для разности ток с минусом
PEHDOM
Venus
а тут можно поподробней
def myScript(param):
print('runing external script func with param', param)
———-^вот это что значит ? ^ ——————–^а эт параметры(её не трогать или какието параметры чего то ввести надо?
это просто пример, котороый показывает что запущена процедура из другого скрипта.
Venus
я правельно подумал что в def myScript(param):, надо будет прописать чтот типо этого
def myScript(param):
n=int(n)
x=int(x)
y=x+n
print('окошечко с суммой',param)
ну и для разности ток с минусом

нет, если вам нужно сложить x и n то myScript будет выглядеть вот так:
 def myScript(x, n):
... дальше все как у вас
Чтобы обработать аргумент нужно его передать.
Соотвественно runScrip нужно изменить на
 def runScript(self):
        n = self.lineEdit_n.text() 
        y = self.lineEdit_x.text()
        my_ext.myScript(x, n)
Естественно на форме у вас должно быть два лайнЕдита куда вы вводите n и x.
Конечно же можно вводить числа в один лайнедит разделяя пробелом или еще чемто, а потом парсить выходную строку, но в данном случае это неправильно. Такой подход имеет смысл только если вы получаете данные откудато извне в виде одной строки. Иначе для каждой переменной отдельный элемент ГУЯ.
Venus
PEHDOM
Вообще вариантов несколько начиная с обычного импорта, exex-а и заканчивая subprocess.Popen-омможно написать простой скрипт и вызывать его с параметрами и парсить через sys.argv, getopt или optparse. А можно впихнуть его в функцию и вызывать соотвественно.пример main.py:
from PyQt4 import QtGui а для qt5 так же выглядит? и почему используется lineEdit? если окошко для ввода и выводы текстедит, так для примера т.е. вместо лайнедит вставить текстедит?
PEHDOM
Venus
from PyQt4 import QtGui а для qt5 так же выглядит?
QtGui из PyQt4 в пятерке разделен на три модуля QtGui, QtPrintSupport и QtWidgets, учитывайте это. Узнать что где можно из офф документации.
Venus
и почему используется lineEdit? если окошко для ввода и выводы текстедит,
в Qt QLineEdit - однострочное окно ввода, QTextEdit - моногострочное окно ввода.
Это всего лишь пример, вы можете передавать любые данные из любых виджетов, а также любые обьекты и инстансы классов. Все ограничиваться только вашей фантазией.
Venus
PEHDOM
PEHDOM
а тут в личку писать низя? можно вам на почту напишу
PEHDOM
Venus
а тут в личку писать низя? можно вам на почту напишу
Походу нельзя… попробуйте на почту.
Venus
PEHDOM
попробовал, получили?
PEHDOM
нет, хотя сам себе отправил нормально….
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB