Я спроектировал пользовательский интерфейс формы с использованием pyqt5 и хочу импортировать переменные обратно в основную функцию для дальнейшего выполнения основной функции.
Я пробовал много способов получить возвращаемые значения из основной функции, когда нажата кнопка «ОК», но не смог получить переменные из основной функции.
Можете ли вы мне помочьКак я могу получить переменные из пользовательского интерфейса формы pyqt5 для основной функции -
Вот код функции пользовательского интерфейса PyQt5 FormLayout -
from PyQt5.QtWidgets import (QApplication, QComboBox, QDialog,
QDialogButtonBox, QFormLayout, QGridLayout, QGroupBox, QHBoxLayout,
QLabel, QLineEdit, QMenu, QMenuBar, QPushButton, QSpinBox, QTextEdit,
QVBoxLayout,QCheckBox)
import sys
app = QApplication([])
class Dialog(QDialog):
def __init__(self,dinput):
super(Dialog, self).__init__()
self.createFormGroupBox(dinput)
buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
buttonBox.accepted.connect(self.accept)
buttonBox.rejected.connect(self.reject)
mainLayout = QVBoxLayout()
mainLayout.addWidget(self.formGroupBox)
mainLayout.addWidget(buttonBox)
self.setLayout(mainLayout)
self.setWindowTitle("Form Layout")
def accept(self):
print(self.linedit1.text())
print(self.combox1.currentText())
print(self.spinbox1.value())
self.closeEvent()
def reject(self):
print('Cancelled')
self.closeEvent()
def getoutput(self):
return self.linedit1.text()
def createFormGroupBox(self,dinput):
self.formGroupBox = QGroupBox("Form layout")
layout = QFormLayout()
self.linedit1 = QLineEdit()
self.linedit1.setText('TestName')
layout.addRow(QLabel(dinput[0]), self.linedit1)
self.combox1 = QComboBox()
self.combox1.setToolTip('Hello')
self.combox1.addItems(['India','France','UK','USA','Germany'])
layout.addRow(QLabel(dinput[1]), self.combox1)
self.spinbox1 = QSpinBox()
layout.addRow(QLabel(dinput[2]), self.spinbox1)
self.formGroupBox.setLayout(layout)
Основная функция - -
import os
import sys
import pyformlayout as pyfl
# Staring Functions for Execution
dinput = ['LastName','Country','Age']
# Call the UI and get the inputs
dialog = pyfl.Dialog(dinput)
if(dialog.exec_()):
TName = dialog.getoutput
print('------------------')
print(TName)
# Main Function Continous by getting the inputs
# from UI
Я не могу получить нужные значения для функции вывода.Даже я использовал функцию getoutput, чтобы вернуть значения и получить вывод «TName».Но я не могу получить значение в переменную TName, и ничего не отображается.
Результат, который я получаю, - (который в основном печатает функцию кнопки «принять», но не переменную TName, которая возвращается в Mainфункция.
TestName
India
25
Как получить возвращаемые значения из функции пользовательского интерфейса PyQt5 Formlayout в функцию Main ..?