Запомните последнее место открытия - PullRequest
0 голосов
/ 03 августа 2020

Я хочу, чтобы getOpenFileName открывала тот же файл автоматически после открытия файла. Я пробовал решение из этого , как заставить getOpenFileName запомнить последний путь открытия? , но это не сработало.

Я опубликовал код GUI и основной код. GetOpenFileName находится в def singleBrowse

мой текущий код:

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1236, 887)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
        self.tabWidget.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.tabWidget.setTabPosition(QtWidgets.QTabWidget.South)
        self.tabWidget.setTabShape(QtWidgets.QTabWidget.Rounded)
        self.tabWidget.setUsesScrollButtons(False)
        self.tabWidget.setObjectName("tabWidget")
        self.inLons = QtWidgets.QWidget()
        self.inLons.setObjectName("inLons")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.inLons)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.inLoanTable = QtWidgets.QTableWidget(self.inLons)
        self.inLoanTable.setObjectName("inLoanTable")
        self.inLoanTable.setColumnCount(0)
        self.inLoanTable.setRowCount(0)
        self.gridLayout_2.addWidget(self.inLoanTable, 2, 0, 1, 8)
        self.save = QtWidgets.QPushButton(self.inLons)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.save.sizePolicy().hasHeightForWidth())
        self.save.setSizePolicy(sizePolicy)
        self.save.setObjectName("save")
        self.gridLayout_2.addWidget(self.save, 3, 6, 1, 1)
        self.exit = QtWidgets.QPushButton(self.inLons)
        self.exit.setObjectName("exit")
        self.gridLayout_2.addWidget(self.exit, 3, 7, 1, 1)
        self.openFile = QtWidgets.QPushButton(self.inLons)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.openFile.sizePolicy().hasHeightForWidth())
        self.openFile.setSizePolicy(sizePolicy)
        self.openFile.setObjectName("openFile")
        self.gridLayout_2.addWidget(self.openFile, 0, 1, 1, 1)
        self.tabWidget.addTab(self.inLons, "")
        self.inGifts = QtWidgets.QWidget()
        self.inGifts.setObjectName("inGifts")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.inGifts)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.tabWidget.addTab(self.inGifts, "")
        self.inLoansReq = QtWidgets.QWidget()
        self.inLoansReq.setObjectName("inLoansReq")
        self.gridLayout_4 = QtWidgets.QGridLayout(self.inLoansReq)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.tabWidget.addTab(self.inLoansReq, "")
        self.outLoans = QtWidgets.QWidget()
        self.outLoans.setObjectName("outLoans")
        self.gridLayout_5 = QtWidgets.QGridLayout(self.outLoans)
        self.gridLayout_5.setObjectName("gridLayout_5")
        self.tabWidget.addTab(self.outLoans, "")
        self.outLoansReq = QtWidgets.QWidget()
        self.outLoansReq.setObjectName("outLoansReq")
        self.gridLayout_6 = QtWidgets.QGridLayout(self.outLoansReq)
        self.gridLayout_6.setObjectName("gridLayout_6")
        self.tabWidget.addTab(self.outLoansReq, "")
        self.outGifts = QtWidgets.QWidget()
        self.outGifts.setObjectName("outGifts")
        self.gridLayout_7 = QtWidgets.QGridLayout(self.outGifts)
        self.gridLayout_7.setObjectName("gridLayout_7")
        self.tabWidget.addTab(self.outGifts, "")
        self.Inst = QtWidgets.QWidget()
        self.Inst.setObjectName("Inst")
        self.gridLayout_8 = QtWidgets.QGridLayout(self.Inst)
        self.gridLayout_8.setObjectName("gridLayout_8")
        self.tabWidget.addTab(self.Inst, "")
        self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "Herbarium Assistant"))
        self.save.setText(_translate("MainWindow", "Save"))
        self.exit.setText(_translate("MainWindow", "Exit"))
        self.openFile.setText(_translate("MainWindow", "open file"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.inLons), _translate("MainWindow", "IN-LOANS"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.inGifts), _translate("MainWindow", "IN-GIFTS"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.inLoansReq), _translate("MainWindow", "IN-LOANS REQ."))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.outLoans), _translate("MainWindow", "OUT-LOANS"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.outLoansReq), _translate("MainWindow", "OUT-LOANS REQ."))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.outGifts), _translate("MainWindow", "OUT-GIFTS"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.Inst), _translate("MainWindow", "INST"))
 import os,sys,csv,datetime
from Email import Ui_Email
from GUI2 import Ui_MainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *


class mainForm(QMainWindow,Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        QMainWindow.__init__(self, *args, **kwargs)
        self.setupUi(self)
        self.initUI()
    def initUI(self):
        self.openFile.clicked.connect(self.singleBrowse)

    def singleBrowse(self):    # This is the function to open a CSV file and browse it
        self.filePath = QFileDialog.getOpenFileName(self,'Single File',"~/Desktop/CSV file",'*.csv')
        if self.filePath[0] != '':
           with open(self.filePath[0],"r") as data:
               reader = csv.reader(data, delimiter=',')
               self.tem = list(reader)
               formatInput = self.formatInput(self.filePath[0])

           if "in-loans.csv" in formatInput:
               self.singleBrowseCore(self.inLoanTable)

    def formatInput(self,textLine):
        textLine = textLine.lower().strip()
        wordList = textLine.split()
        textLine = " ".join(wordList)
        return textLine


    def singleBrowseCore(self,file:QTableWidget):
        file.setRowCount(0)
        file.setColumnCount(len(self.tem[0]))
        colHeaders = self.tem[0]
        file.setHorizontalHeaderLabels(colHeaders)

        for rowData in self.tem[1:]:  # populating data from local CSV file
            row = file.rowCount()
            file.insertRow(row)
            for column, stuff in enumerate(rowData):
                item = QTableWidgetItem(stuff)
                file.setItem(row,column,item)

            header = file.horizontalHeader()
            file.horizontalHeader().setStretchLastSection(True)
            file.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
            for i in range(len(self.tem[0])):
                header.setSectionResizeMode(int(i),QtWidgets.QHeaderView.ResizeToContents)
            file.resizeRowsToContents()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...