Не могу разобраться с обработками сигналов и событий в pyqt

Не могу понять, как по кнопке делать то или иное событие (кроме print)? Сначала была проблема с отображением web окна по кнопке, в этом мне помог уважаемый S.Nick. Теперь не могу по кнопке сделать так, чтобы выбранные мной параметры были переданы в функцию из другого модуля. Я пытался сделать как с веб окном, но у меня не выходит. Как это сделать? Код прилагается:

import sys
import serial
import minimalmodbus

from icecream import ic

import plotly.offline as po
import plotly.graph_objs as go

from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWebEngineWidgets import QWebEngineView


class Widget(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("График температур")
        screen = app.primaryScreen()
        size = screen.size()
        self.resize(size.width() / 4, size.height() / 4)
        self.browser = None
        self.com_ports = QtWidgets.QComboBox()
        self.slave = 1
        self.baudrate = 115200
        self.bytesize = 8
        self.parity = serial.PARITY_NONE
        self.stopbits = 1
        self.timeout = 0.05
        self.mode = minimalmodbus.MODE_RTU
        text_com_ports = QtWidgets.QLabel("Com-порт")
        text_addr_slave = QtWidgets.QLabel("Адресс устройства")
        text_addr_regs = QtWidgets.QLabel("Регистр")
        text_baudrate = QtWidgets.QLabel("Скорость")
        text_bytesize = QtWidgets.QLabel("Размер бита")
        text_parity = QtWidgets.QLabel("Паритет")
        text_timeout = QtWidgets.QLabel("Тайм-аут")
        text_mode = QtWidgets.QLabel("Режим")
        btn_connect = QtWidgets.QPushButton("Подключиться")
        btn_connect.clicked.connect(self.f_modbus)
        btn_trend = QtWidgets.QPushButton("Открыть график")
        btn_trend.clicked.connect(self.on_clicked_trend)
        self.com_ports = QtWidgets.QComboBox()
        self.com_ports.addItems([str(i) for i in range(1, 21)])
        self.addr_slave = QtWidgets.QSpinBox(maximum=256)
        self.addr_regs = QtWidgets.QSpinBox(maximum=256)
        self.baudrate = QtWidgets.QComboBox()
        self.baudrate.addItems(['1200', '2400', '4800', '9600', '1440', '19200', '38400', '57600', '115200'])
        self.bytesize = QtWidgets.QComboBox()
        self.bytesize.addItems(['7', '8'])
        self.parity = QtWidgets.QComboBox()
        self.parity.addItems(['нет, чётный, нечётный'])
        self.timeout = QtWidgets.QComboBox()
        self.timeout.addItems(['12','23'])
        self.mode = QtWidgets.QComboBox()
        self.mode.addItems(['rtu', 'ascii'])
        grid = QtWidgets.QGridLayout(self)
        grid.addWidget(text_com_ports, 0, 0)
        grid.addWidget(self.com_ports, 0, 1)
        grid.addWidget(text_addr_slave, 1, 0)
        grid.addWidget(self.addr_slave, 1, 1)
        grid.addWidget(text_addr_regs, 2, 0)
        grid.addWidget(self.addr_regs, 2, 1)
        grid.addWidget(btn_connect, 4, 0)
        grid.addWidget(btn_trend, 4, 1)
        grid.addWidget(text_baudrate, 3, 0)
        grid.addWidget(self.baudrate, 3, 1)
        grid.addWidget(text_bytesize, 0, 2)
        grid.addWidget(self.bytesize, 0, 3)
        grid.addWidget(text_parity, 1, 2)
        grid.addWidget(self.parity, 1, 3)
        grid.addWidget(text_timeout, 2, 2)
        grid.addWidget(self.timeout, 2, 3)
        grid.addWidget(text_mode, 3, 2)
        grid.addWidget(self.mode, 3, 3)
        ic(str(self.com_ports.currentIndex()))
        ic(self.addr_slave.value())
        ic(self.addr_regs.value())


@QtCore.pyqtSlot()
def f_modbus(self):
    modbus = minimalmodbus.Instrument('COM' + str(self.com_ports.currentIndex()), self.addr_slave.value())
    modbus.serial.baudrate = self.baudrate
    modbus.serial.bytesize = self.bytesize
    modbus.serial.parity = serial.PARITY_NONE
    modbus.serial.stopbits = self.stopbits
    modbus.serial.timeout = self.timeout
    modbus.mode = minimalmodbus.MODE_RTU
    modbus.read_register(self.addr_regs.value())


@QtCore.pyqtSlot()
def start_web(self, fig):
    raw_html = '<html><head><meta charset="utf-8" />'
    raw_html += '<script src="https://cdn.plot.ly/plotly-latest.min.js"></script></head>'
    raw_html += '<body>'
    raw_html += po.plot(fig, include_plotlyjs=False, output_type='div')
    raw_html += '</body></html>'
    return raw_html


@QtCore.pyqtSlot()
def on_clicked_trend(self):
    ic(str(self.com_ports.currentIndex()))
    ic(self.addr_slave.value())
    ic(self.addr_regs.value())
    self.browser = QWebEngineView()
    fig = go.Figure(data=[{'type': 'scattergl', 'y': [2, 1, 3, 1, 10]}])
    fig_view = self.start_web(fig)
    self.browser.setHtml(fig_view)
    self.browser.show()


def closeEvent(self, event):
    if self.browser:
        self.browser.hide()


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    view = Widget()
    view.show()
    sys.exit(app.exec_())

Ответы (0 шт):