pyqt5 QFileDialog getOpenFileName 選擇大檔案卡死?

時間 2021-09-09 14:46:15

1樓:唯羽

我是提問題的人:提問的視窗很坑,沒法補充,在這裡補充完整!

視窗檔案

# -*- encoding: utf-8 -*-

import

osimport

sysfrom

PyQt5.QtWidgets

import

QWidget,,

QFileDialog

from

window.select_file

import

Ui_SelectFile

class

SelectFile

(Ui_SelectFile

):"""選擇檔案"""

def__init__

(self,w

:QWidget

,src_lis

:list

):Ui_SelectFile

.__init__

(self

)self

.src_lis

=src_lis

self

.file_info

=self.w

=wdefsetupUi

(self

,context

):Ui_SelectFile

.setupUi

(self

,context

)self

.FileSelectTipTag

.setText(''

)self

.SrcSelectTip

.setText(''

)self

.SrcSelectComboBox

.addItems

(self

.src_lis

)self

.OpenFileButton

.clicked

[bool].

connect

(self

.open_file

)def

open_file

(self

):file_name

,file_type

=QFileDialog

.getOpenFileName

(self.w

,"選取檔案",os

.getcwd

(),# 起始路徑

"Zip Files (*.zip)"

)self

.FileSrcLineEdit

.setText

(file_name

)# print(file_name)

# print(file_type)

defshow_select_file

(src_lis

:list

):"""

選擇檔案

:param src_lis: 路徑列表

:return:

"""=

(sys

.argv)w

=QWidget

()ui

=SelectFile(w

,src_lis)ui

.setupUi(w

)w.show().

exec_

()returnui.

file_info

if__name__

=='__main__'

:dir_lis=[

'/',

'/test_up/'

,'/test_up/1/'

]show_select_file

(dir_lis)ui

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'ui\select_file.ui'

## Created by: PyQt5 UI code generator 5.15.2

## WARNING: Any manual changes made to this file will be lost when pyuic5 is

# run again. Do not edit this file unless you know what you are doing.

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_SelectFile(object):

def setupUi(self, SelectFileSelectFile.setObjectName("SelectFile"SelectFile.resize(816, 302icon = QtGui.

QIconicon.addPixmap(QtGui.QPixmap(":

/common/img/tag/9130.png"), QtGui.QIcon.

Normal, QtGui.QIcon.OffSelectFile.

setWindowIcon(iconSelectFile.setStyleSheet("#SelectFile\n൪"self.FileSrcLineEdit = QtWidgets.

QLineEdit(SelectFileself.FileSrcLineEdit.setGeometry(QtCore.

QRect(20, 40, 641, 41self.FileSrcLineEdit.setObjectName("FileSrcLineEdit"self.

OpenFileButton = QtWidgets.QPushButton(SelectFileself.OpenFileButton.

setGeometry(QtCore.QRect(680, 40, 101, 31self.OpenFileButton.

setCursor(QtGui.QCursor(QtCore.Qt.

PointingHandCursorself.OpenFileButton.setStyleSheet("background-color:

rgb(0, 157, 236);"self.OpenFileButton.setObjectName("OpenFileButton"self.

FileSelectTag = QtWidgets.QLabel(SelectFileself.FileSelectTag.

setGeometry(QtCore.QRect(20, 0, 101, 41font = QtGui.QFontfont.

setFamily("黑體"font.setPointSize(10font.setBold(Falsefont.

setItalic(Falsefont.setWeight(50self.FileSelectTag.

setFont(fontself.FileSelectTag.setObjectName("FileSelectTag"self.

FileSelectTipTag = QtWidgets.QLabel(SelectFileself.FileSelectTipTag.

setGeometry(QtCore.QRect(20, 90, 161, 31font = QtGui.QFontfont.

setFamily("黑體"font.setPointSize(10font.setBold(Falsefont.

setItalic(Falsefont.setWeight(50self.FileSelectTipTag.

setFont(fontself.FileSelectTipTag.setStyleSheet("color:

rgb(255, 0, 0);"self.FileSelectTipTag.setObjectName("FileSelectTipTag"self.

SrcSelectComboBox = QtWidgets.QComboBox(SelectFileself.SrcSelectComboBox.

setGeometry(QtCore.QRect(20, 160, 361, 41self.SrcSelectComboBox.

setObjectName("SrcSelectComboBox"self.SrcSelectTag = QtWidgets.QLabel(SelectFileself.

SrcSelectTag.setGeometry(QtCore.QRect(20, 120, 141, 41font = QtGui.

QFontfont.setFamily("黑體"font.setPointSize(10font.

setBold(Falsefont.setItalic(Falsefont.setWeight(50self.

SrcSelectTag.setFont(fontself.SrcSelectTag.

setObjectName("SrcSelectTag"self.SrcSelectTip = QtWidgets.QLabel(SelectFileself.

SrcSelectTip.setGeometry(QtCore.QRect(20, 210, 161, 31font = QtGui.

QFontfont.setFamily("黑體"font.setPointSize(10font.

setBold(Falsefont.setItalic(Falsefont.setWeight(50self.

SrcSelectTip.setFont(fontself.SrcSelectTip.

setStyleSheet("color: rgb(255, 0, 0);"self.SrcSelectTip.

setObjectName("SrcSelectTip"self.ConfirmButton = QtWidgets.QPushButton(SelectFileself.

ConfirmButton.setGeometry(QtCore.QRect(30, 250, 111, 41self.

ConfirmButton.setCursor(QtGui.QCursor(QtCore.

Qt.PointingHandCursorself.ConfirmButton.

setStyleSheet("background-color: rgb(0, 157, 236);"self.ConfirmButton.

setObjectName("ConfirmButton"self.ExitButton = QtWidgets.QPushButton(SelectFileself.

ExitButton.setGeometry(QtCore.QRect(190, 250, 111, 41self.

ExitButton.setCursor(QtGui.QCursor(QtCore.

Qt.PointingHandCursorself.ExitButton.

setStyleSheet("background-color: rgb(203, 0, 0);\n൪"self.ExitButton.

setObjectName("ExitButton"self.retranslateUi(SelectFileQtCore.QMetaObject.

connectSlotsByName(SelectFile)

SelectFile.setWindowTitle(_translate("SelectFile", "選擇檔案"self.OpenFileButton.

setText(_translate("SelectFile", "開啟"self.FileSelectTag.setText(_translate("SelectFile", "請選擇檔案:

"self.FileSelectTipTag.setText(_translate("SelectFile", "檔案路徑不能為空"self.

SrcSelectTag.setText(_translate("SelectFile", "請選擇上傳路徑:"self.

SrcSelectTip.setText(_translate("SelectFile", "檔案路徑不能為空"self.ConfirmButton.

setText(_translate("SelectFile", "確定"self.ExitButton.setText(_translate("SelectFile", "退出"))

from . import upload_rc

開啟檔案比較大的時候就會卡很久,小檔案沒啥問題。懷疑是getOpenFileName方法會讀取檔案內容。我希望是獲取檔案的整路徑就可以,求大神幫助!

PyQt5如何實現視窗關閉淡出效果?

wwww from qtpy.QtCore import from qtpy.QtWidgets import class AnimationWidget QWidget def init self,parent Nonesuper QWidget,self init parent parentse...

奧迪A6l,A5,Q5,怎麼選擇?

這三輛車沒有可比性,不是拿到一起比的車型,不過題主自己情況介紹的很清楚,所以推薦Q5L。A5時尚年輕,題主自己開,果斷A5,但是老爸開就有些不合適了,顯得老爸不穩重不成熟 A6l成熟穩重,題主老爸開,果斷A6l,但是題主開容易被看做司機或者會被誤認題主不是在開自己的車 Q5兼顧品牌 實用性 價效比,...

同樣35 40萬價位,不選擇Q5 glk QX50卻買了傲虎2 0DIT是什麼心態?

Daping2003 3萬公里虎子車主對虎子絕對滿意每次長途旅行都是虎子伴駕高速穩非鋪裝槓槓給力 3年無任何毛病 9295通吃大小保去途虎機油都是嘉實多極護非常喜歡滿意 窪裡哇哩 買Outback都是動車的,雖然這句話有點絕對,但也有根據。選Outback的人肯定是不盲目跟風懂得自己要什麼的人。但是...