PyQt文件浏览器 - 如何使用该文件?

时间:2018-05-27 15:49:26

标签: python pyqt5 qt-designer pypdf2

我正在使用pyqt5在python中编写我的第一个应用程序。我的所有图标和主要文件都正常工作,我已导入所有模块。现在我需要把所有东西连在一起。在这里,我遇到了最大的问题。当我点击图标时,它打开文件浏览器;然后我点击.pdf文件和...这里我想我的程序运行def dzielenieStron() 但它崩溃了我的程序。我尝试了很多不同的解决方案,但仍然没有找到答案,这里是不合作的代码的一部分:

 def openFile(self):
        self.fileName = QtWidgets.QFileDialog.getOpenFileName(None, 'Wybierz plik')
        self.name = open(fileName, 'rb')
        self.dzielenieStron()

    def dzielenieStron(self):
        ReaderSplitPage = PyPDF2.PdfFileReader(self.name, 'rb')
        for page in range(ReaderSplitPage.getNumPages()):
            p = ReaderSplitPage.getPage(page)
            WriterSplitPage = PyPDF2.PdfFileWriter()
            WriterSplitPage.addPage(p)
            with open('page-%02d.pdf' % page, 'wb') as f:  # Tworzy nazwy plikow po kolei
                WriterSplitPage.write(f)

当然所有线路都处于同一水平。我不知道为什么在这里改变了......

我会感谢你的提示

1 个答案:

答案 0 :(得分:0)

试一试:

def openFile(self):
    pathFileName, _ = QtWidgets.QFileDialog.getOpenFileName(None, 'Wybierz plik', '', 'pdf(*.pdf)')   
    print("pathFileName-`{}`, \n_-`{}`".format(pathFileName, _))
    if pathFileName:
        print("Wybrany plik: ", pathFileName)
        f = open(pathFileName, 'rb')
        self.dzielenieStron(f)

def dzielenieStron(self, f):   
    with f:
        ReaderSplitPage = PyPDF2.PdfFileReader(f, 'rb')
        for page in range(ReaderSplitPage.getNumPages()):
            p = ReaderSplitPage.getPage(page)
            WriterSplitPage = PyPDF2.PdfFileWriter()
            WriterSplitPage.addPage(p)
            with open('page-%02d.pdf' % page, 'wb') as f:  # Tworzy nazwy plikow po kolei
                WriterSplitPage.write(f)