Как получить переменную из слота методом с использованием PYQT5 python? - PullRequest
0 голосов
/ 10 апреля 2020

Ниже приведен мой код и пример GUI. Я делаю приложение для извлечения данных, используя PYQT5 (Python). Однако у меня есть проблема с тем, как передать переменную из QlineEdit методу init после нажатия кнопки обзора. Когда я нажимаю кнопку обзора, программа запускает проводник, позволяющий выбрать одну папку. Во-вторых, путь к папке задан в QlineEdit. Однако я не могу получить переменную пути к папке.

enter image description here

class Ui_MainWindow(object):

        self.dis_folder = QtWidgets.QLineEdit(self.centralwidget)
        self.dis_folder.setGeometry(QtCore.QRect(30, 60, 311, 31))
        self.dis_folder.setObjectName("dis_folder")

        self.btn_browse = QtWidgets.QPushButton(self.centralwidget)
        self.btn_browse.setGeometry(QtCore.QRect(360, 60, 91, 31))
        self.btn_browse.setObjectName("btn_browse")

        self.dis_log = QtWidgets.QTextBrowser(self.centralwidget)
        self.dis_log.setGeometry(QtCore.QRect(30, 150, 311, 341))
        self.dis_log.setObjectName("dis_log")

        self.lbl_Folder = QtWidgets.QLabel(self.centralwidget)
        self.lbl_Folder.setGeometry(QtCore.QRect(30, 20, 71, 31))
        self.lbl_Folder.setObjectName("lbl_Folder")

        self.btn_start = QtWidgets.QPushButton(self.centralwidget)
        self.btn_start.setGeometry(QtCore.QRect(360, 150, 91, 31))
        self.btn_start.setObjectName("btn_start")

        self.btn_stop = QtWidgets.QPushButton(self.centralwidget)
        self.btn_stop.setGeometry(QtCore.QRect(360, 210, 91, 31))
        self.btn_stop.setObjectName("btn_stop")

class MyMainForm(QMainWindow,Ui_MainWindow):




  def __init__(self, parent=None):
    self.folderPath = ""
    super(MyMainForm, self).__init__(parent)
    self.setupUi(self)
    self.btn_browse.clicked.connect(self.openFile)

    print(self.folderPath)

    # self.dis_log.setText(self.btn_start.clicked.connect(self.readXML(folderPath)))

def openFile(self):
    get_directory_path = QFileDialog.getExistingDirectory(self,
                                "select XML folder.",
                                "C:/")

    self.dis_folder.setText(str(get_directory_path))
    if  self.folderPath=="":
        self.folderPath=get_directory_path
    def readXML(self,dir):

        main.runReadXML("r\'"+str(dir)+"\'")
        # print("r\'"+str(get_directory_path)+"\'")



if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWin = MyMainForm()
    myWin.show()
    sys.exit(app.exec_())
...