找回密码
 立即注册
收起左侧

选择文件(Browse)对话框

0
回复
5471
查看
[复制链接]

尚未签到

来源: 2019-3-26 21:35:28 显示全部楼层 |阅读模式
1Qter豆
本帖最后由 YINY 于 2019-3-26 21:37 编辑

想做一个点一个按钮,能够弹出选择文件对话框(Browse),进而返回选择文件名的模块,
利用Qt designer画了一下,然后添加了信号和槽函数,结果每次点击Browse后卡死,
返回代码:Process finished with exit code -1073740791 (0xC0000409),网上查询无果。
添加槽函数:

def openfile(self):
openfile_name = QFileDialog.getOpenFileName(self,'选择文件','','Excel files(.xlsx , .xls)')



连接信号与槽函数:

self.BrowseButton.clicked.connect(self.openfile)



全部代码(最后几句是我后加的,用于调试这个模块,因为这个模块本来是一个子模块):

from PyQt5 import QtCore, QtGui, QtWidgets, Qt
from PyQt5.QtWidgets import
from PyQt5.QtCore import

from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QFileDialog

class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(562, 478)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
Dialog.setFont(font)
self.gridLayout = QtWidgets.QGridLayout(Dialog)
self.gridLayout.setObjectName("gridLayout")
spacerItem = QtWidgets.QSpacerItem(179, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 0, 0, 1, 2)
self.label = QtWidgets.QLabel(Dialog)
font = QtGui.QFont()
font.setFamily("微软雅黑")
font.setPointSize(15)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 2, 1, 2)
self.label_4 = QtWidgets.QLabel(Dialog)
font = QtGui.QFont()
font.setFamily("微软雅黑")
font.setPointSize(11)
font.setBold(False)
font.setWeight(50)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 1, 0, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(323, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem1, 1, 1, 1, 4)
spacerItem2 = QtWidgets.QSpacerItem(72, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem2, 1, 5, 1, 1)
spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem3, 1, 6, 1, 1)
self.label_2 = QtWidgets.QLabel(Dialog)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
self.Path = QtWidgets.QComboBox(Dialog)
self.Path.setObjectName("Path")
self.gridLayout.addWidget(self.Path, 2, 1, 1, 4)
self.label_3 = QtWidgets.QLabel(Dialog)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
spacerItem4 = QtWidgets.QSpacerItem(179, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem4, 4, 0, 1, 2)
self.yesno = QtWidgets.QDialogButtonBox(Dialog)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.yesno.setFont(font)
self.yesno.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
self.yesno.setObjectName("yesno")
self.gridLayout.addWidget(self.yesno, 4, 2, 1, 2)
spacerItem5 = QtWidgets.QSpacerItem(191, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem5, 4, 4, 1, 3)
self.line = QtWidgets.QFrame(Dialog)
self.line.setFrameShape(QtWidgets.QFrame.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
self.line.setObjectName("line")
self.gridLayout.addWidget(self.line, 5, 0, 2, 7)
spacerItem6 = QtWidgets.QSpacerItem(20, 27, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem6, 6, 3, 2, 1)
self.label_5 = QtWidgets.QLabel(Dialog)
font = QtGui.QFont()
font.setFamily("微软雅黑")
font.setPointSize(11)
font.setBold(False)
font.setWeight(50)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 7, 0, 1, 1)
self.result = QtWidgets.QTextEdit(Dialog)
self.result.setObjectName("result")
self.gridLayout.addWidget(self.result, 8, 0, 1, 7)
spacerItem7 = QtWidgets.QSpacerItem(20, 72, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem7, 9, 3, 1, 1)
self.progress = QtWidgets.QProgressBar(Dialog)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.progress.setFont(font)
self.progress.setProperty("value", 24)
self.progress.setObjectName("progress")
self.gridLayout.addWidget(self.progress, 3, 1, 1, 4)
self.BrowseButton = QtWidgets.QPushButton(Dialog)
font = QtGui.QFont()
font.setBold(False)
font.setWeight(50)
self.BrowseButton.setFont(font)
self.BrowseButton.setObjectName("BrowseButton")
self.gridLayout.addWidget(self.BrowseButton, 2, 5, 1, 1)
self.BrowseButton.clicked.connect(self.openfile)

    self.retranslateUi(Dialog)
    QtCore.QMetaObject.connectSlotsByName(Dialog)

def retranslateUi(self, Dialog):
    _translate = QtCore.QCoreApplication.translate
    Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
    self.label.setText(_translate("Dialog", "Input Module"))
    self.label_4.setText(_translate("Dialog", "Data Input"))
    self.label_2.setText(_translate("Dialog", "Source File:"))
    self.label_3.setText(_translate("Dialog", "Progress:"))
    self.label_5.setText(_translate("Dialog", "Input Result"))
    self.BrowseButton.setText(_translate("Dialog", "Browse..."))

def openfile(self):
    openfile_name = QFileDialog.getOpenFileName(self,'选择文件','','Excel files(*.xlsx , *.xls)')

if name == "main":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = UiDialog()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec
())

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了