python 对话框的创建及调用_如何使用PyQt5在python中创建文件对话框

我有一个名为PDFviewer的python类,在运行程序时,系统会显示一个窗口,处理按钮 (open folder) 将打开一个文件对话框,允许用户选择一个目录并在其中显示文件 .

问题是当我尝试单击按钮时系统崩溃并显示以下错误:

文件“C:\ Users \ test \ Documents \ Python_Projects \ final_project \ myPDFviewer.py”,第36行,在sys.exit(app.exec_())文件“C:\ Users \ test \ Documents \ Python_Projects \ final_project \ myPDFviewer.py“,第24行,在setExistingDirectory options = options中)builtins.TypeError:getExistingDirectory(parent:QWidget = None,caption:str ='',directory:str ='',options:Union [QFileDialog.Options,QFileDialog . 选项] = QFileDialog.ShowDirsOnly):参数1有意外类型'bool'

代码:

from PyQt5 import QtCore, QtGui, QtWidgets

from PyQt5.QtWidgets import (QApplication, QCheckBox, QColorDialog, QDialog,

QErrorMessage, QFileDialog, QFontDialog, QFrame, QGridLayout,

QInputDialog, QLabel, QLineEdit, QMessageBox, QPushButton)

from PyQt5.QtCore import QDir, Qt

import pdfviewer

class pdfViewer(pdfviewer.Ui_PdfPreviewWindow):

def __init__(self,PdfPreviewObj ):

self.PdfPreviewObj =PdfPreviewObj

self.setupUi(PdfPreviewObj)

self.PdfPreviewObj.show()

self.pushButtonOpenFolder.clicked.connect(self.setExistingDirectory)

def setExistingDirectory(self,qf):

options = QFileDialog.DontResolveSymlinks | QFileDialog.ShowDirsOnly

directory = QFileDialog.getExistingDirectory(self,

"Open Folder",

options=options)

if __name__ == "__main__":

import sys

app = QtWidgets.QApplication(sys.argv)

PdfPreviewWindow = QtWidgets.QMainWindow()

pdfViewerUi = pdfViewer(PdfPreviewWindow)

sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在PYQT5创建的ui界面使用自己的Python程序,可以通过在ui界面调用Python函数的方式实现。具体步骤如下: 1. 在PYQT5创建一个按钮或者其他交互组件,用于触发调用Python函数的事件。 2. 在创建PYQT5窗口类定义一个函数,用于实现需要的功能。例如,如果你想在PYQT5界面调用一个名为"my_func"的Python函数,则可以在窗口类定义一个名为"on_click"的函数,该函数将调用"my_func"函数。 3. 在"on_click"函数,通过直接调用"my_func"函数的方式来实现所需的功能。 4. 最后,将"on_click"函数与之前创建的按钮或其他交互组件的事件关联起来,以便在用户点击该组件时自动调用"on_click"函数。 以下是一个简单的示例代码,用于在PYQT5界面调用名为"my_func"的Python函数: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton import sys def my_func(): print("Hello World!") class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): btn = QPushButton("Click me!", self) btn.setGeometry(150, 50, 100, 30) btn.clicked.connect(self.on_click) def on_click(self): my_func() if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 在以上代码,我们定义了一个名为"my_func"的函数,该函数将在PYQT5界面调用。在MainWindow类,我们创建了一个名为"btn"的按钮,并将其事件与"on_click"函数关联起来。当用户单击该按钮时,"on_click"函数将被调用,进而调用"my_func"函数打印出"Hello World!"的信息。 运行以上代码后,可以在PYQT5界面看到一个"Click me!"按钮。当用户单击该按钮时,将会在命令行输出"Hello World!"的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值