Перенос названий выбранных в проводнике файлов в textedit

Добрый день Евгений и форумчане! Возникла такая проблема: создал форму в дизайнере с кнопкой и textedit, программирую событие для кнопки при нажатии на которую открывается проводник и названия (пути) выбранных файлов должны попасть в textedit. но почему-то после выбора файлов программа вылетает, хотя в консоль всё передается без проблем. Вот код:
import sys
from vira import *
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import (QDialog, QFileDialog, QMessageBox, QLineEdit, QProgressBar, QProgressDialog)

class MyWin(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)

# Вешаем на кнопку функцию Open
self.ui.pushButton.clicked.connect(self.Open)
self.ui.pushButton_2.clicked.connect(self.close)
#self.ui.pushButton_2.clicked.connect(self.open)

def Open(self):
self.ui.textEdit.clear()
fileNames= QFileDialog.getOpenFileNames(self, "Выбрать файлы", "/home", "*.las *.txt")
print(fileNames) # печать в консоль работает
self.ui.textEdit.append(fileNames) # печать в texteEdit программа вылетает

if __name__=="__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())
We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

8
Evgenii Legotckoi
  • Sept. 1, 2018, 3:52 a.m.

Добрый день

Так попробуйте
ui.textEdit.setText(fileNames)


    Тоже пробовал, опять вылетает

      В Qt этот алгоритм выглядит так:
      ui->textEdit->clear();
              QStringList files = QFileDialog::getOpenFileNames(this,"Выбрать файлы","/home","*.las *.txt");
              QStringList list = files;
              QStringList::Iterator it = list.begin();
              while(it != list.end())
              {
                  if (QDir::match("*.las *.txt", *it) || QDir::match("*.txt", *it))
                  {
                      ui->textEdit->append(*it);
                      ++it;
                  }
              }

      а как реализовать его в python не знаю...

        Думаю, что в python можно и без итератора обойтись, просто циклом for


        for filename in files:
            if filename.endsWith("*.las") or filename.endsWith("*.txt"):
        		self.ui.textEdit.append(filename)

          Опять ругается:

            странно... у вас там список в качестве объекта,

            что висит в выводе?


              Список файлов, вот код:
              import sys
              from re import match

              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)

              # Вешаем на кнопку функцию Open
              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", "*.las *.txt")
              print(files)
              for filename in files:
              if filename.endsWith("*.las") or filename.endsWith("*.txt"):
              self.ui.textEdit.append(filename)


              if __name__=="__main__":
              app = QtWidgets.QApplication(sys.argv)
              myapp = MyWin()
              myapp.show()
              sys.exit(app.exec_())
                Е
                • Sept. 7, 2018, 1:01 p.m.
                • The answer was marked as a solution.
                Оказалось всё намного проще))
                import sys
                from re import match

                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)

                # Вешаем на кнопку функцию Open
                self.ui.pushButton.clicked.connect(self.Open)
                self.ui.pushButton_2.clicked.connect(self.close)
                #self.ui.pushButton_2.clicked.connect(self.open)

                def Open(self):
                self.ui.textEdit.clear()
                files, _ = QFileDialog.getOpenFileNames(self, "Выбрать файлы", "/home", "*.las *.txt")
                hjh = list(filter(lambda x:x != '*.las *.txt', files))
                myString = '\n'.join(hjh)
                self.ui.textEdit.setText(myString)


                if __name__=="__main__":
                app = QtWidgets.QApplication(sys.argv)
                myapp = MyWin()
                myapp.show()
                sys.exit(app.exec_())

                  Comments

                  Only authorized users can post comments.
                  Please, Log in or Sign up
                  AD

                  C ++ - Test 004. Pointers, Arrays and Loops

                  • Result:50points,
                  • Rating points-4
                  m

                  C ++ - Test 004. Pointers, Arrays and Loops

                  • Result:80points,
                  • Rating points4
                  m

                  C ++ - Test 004. Pointers, Arrays and Loops

                  • Result:20points,
                  • Rating points-10
                  Last comments
                  i
                  innorwallNov. 14, 2024, 7:03 a.m.
                  How to make game using Qt - Lesson 3. Interaction with other objects what is priligy tablets What happens during the LASIK surgery process
                  i
                  innorwallNov. 14, 2024, 4:09 a.m.
                  Using variables declared in CMakeLists.txt inside C ++ files where can i buy priligy online safely Tom Platz How about things like we read about in the magazines like roid rage and does that really
                  i
                  innorwallNov. 12, 2024, 6:12 a.m.
                  Django - Tutorial 055. How to write auto populate field functionality Freckles because of several brand names retin a, atralin buy generic priligy
                  i
                  innorwallNov. 12, 2024, 2:23 a.m.
                  QML - Tutorial 035. Using enumerations in QML without C ++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
                  i
                  innorwallNov. 11, 2024, 11:50 p.m.
                  Qt/C++ - Lesson 052. Customization Qt Audio player in the style of AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
                  Now discuss on the forum
                  i
                  innorwallNov. 14, 2024, 8:39 a.m.
                  добавить qlineseries в функции Listen intently to what Jerry says about Conditional Acceptance because that s the bargaining chip in the song and dance you will have to engage in to protect yourself and your family from AMI S…
                  i
                  innorwallNov. 11, 2024, 6:55 p.m.
                  Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
                  9
                  9AnonimOct. 25, 2024, 4:10 p.m.
                  Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

                  Follow us in social networks