Е
Oct. 16, 2019, 5:58 p.m.
Почему в python при нажатии на "Отмена" при открытии нескольких файлов программа вылетает?
Добрый день! Не подскажите почему в python при нажатии на "Отмена" при открытии нескольких файлов методом QFileDialog.getOpenFileNames программа вылетает?
Код:
- import sys
- import codecs
- from vira import *
- from PyQt5 import QtCore, QtGui, QtWidgets
- from PyQt5.QtWidgets import (QDialog, QFileDialog, QMessageBox, QLineEdit, QProgressBar, QProgressDialog)
- from PyQt5.QtCore import QDir, QDirIterator
- class MyWin (QtWidgets.QMainWindow):
- def __init__(self, parent=None):
- QtWidgets.QWidget.__init__ (self, parent)
- self.ui = Ui_MainWindow ()
- self.ui.setupUi (self)
- self.ui.pushButton.clicked.connect (self.Open)
- self.ui.pushButton_2.clicked.connect (self.close)
- def Open(self):
- self.ui.textEdit.clear ()
- files, _ = QFileDialog.getOpenFileNames (self, "Выбрать файлы", "/home", "*.txt")
- hjh = list (filter (lambda x: x != '*.las *.txt', files))
- myString = '\n'.join (hjh)
- self.ui.textEdit.setText (myString)
- if self.ui.comboBox.currentIndex () == 0:
- strx = self.ui.textEdit.toPlainText ()
- strxList = strx.split ('\n')
- else:
- strx = self.ui.textEdit.toPlainText ()
- strxList = strx.split ('\n')
- for jk in range (0, len (strxList), 1):
- print (strxList[jk])
- f = codecs.open (strxList[jk], 'r', encoding='cp866')
- for line in f:
- pkp = 1
- for lk in range (0, len(line), 1):
- if line[lk] == '0' or line[lk] == '1' or line[lk] == '2' or line[lk] == '3' or line[lk] == '4' or line[lk] == '5' or line[lk] == '6' or line[lk] == '7' or line[lk] == '8' or line[lk] == '9' or line[lk] == '.' or line[lk] == ',' or line[lk] == '-' or line[lk] == '\n' or line[lk] == ' ' or line[lk] == ' ':#or line[lk:(lk+2)] != '--' or line[lk] != '#':
- pkp += 1
- if pkp == len(line):
- print(line[0:len(line)-1])
- self.ui.textEdit.append(line[0:len(line)-2])
- f.close()
- if __name__ == "__main__":
- app = QtWidgets.QApplication (sys.argv)
- myapp = MyWin ()
- myapp.show ()
- sys.exit (app.exec_ ())
2
29
Do you like it? Share on social networks!
- Last comments
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
- Now discuss on the forum
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
- Спасибо большое за помощь и простите за то что отнял время своей невнимательностью.
Добрый день.
Полагаю потому, что в случае нажатия "Отмена" у вас всё равно возвращается какой-то список, только пустой. Нужно добавить проверку
Скорее всего должно выглядеть как-то так
или
Не знаю, какой именно синтаксис там будет правильный, не помню, заменяется ли QStringList в PyQt5 на обычный python list или нет.
Благодарю Вас Евгений за оперативность)) Второй вариант сработал))
Используйте, пожалуйста при вставке программного кода диалоговое окно, кнопка вот с этим значком <>
Хорошо, запомнил