Не работает программа с интерфейсом на python 3 и pyqt5, хотя никаких ошибок нет

Программа с интерфейсом должна считывать в тексте: кол-во байт, слов, строк, букв; и записывать эти значения в интерфейс программы.

Интерфейс программы: введите сюда описание изображения

from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QFileDialog
from PyQt5 import uic

def onClick():
    global fileLines
    path = QFileDialog.getOpenFileName()
    path = path [0]

    if len(path) == 0:
        return
    ui.lineEdit.clear()

    F = open(path, "r")
    ui.lineEdit.setText(path)
    text = QFileDialog.readAll()
    F.readAll()
    ui.lineEdit_2.setText(text)

    F.close()

def on_pushButton_2_clicked():
   bukvi = ui.lineEdit_2.text()

   bait = int(bukvi.count())
   ui.spinBox.setValue(bait)

   word = int(bukvi.split(" ").count())
   ui.spinBox_2.setValue(word)

   strok = int(bukvi.split("\n").count())
   ui.spinBox_3.setValue(strok)

app = QApplication([])
ui = uic.loadUi("untitled.ui")
ui.show()

ui.pushButton.clicked.connect(onClick) #При нажатии на кнопку выполняется функция
ui.pushButton_2.clicked.connect(on_pushButton_2_clicked)
exit(app.exec())

Код untitled.ui:

untitled.ui

Файл, который считывается: файл, который считывается


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так:

main.py

import sys 
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QFileDialog
from PyQt5 import uic


def onClick():
    path = QFileDialog.getOpenFileName()
    path = path[0]
    if not path:
        return
        
    ui.lineEdit.clear()
    ui.lineEdit.setText(path)

def on_pushButton_2_clicked():
    path = ui.lineEdit.text()
    if not path:
        return
    with open(path, "r") as f:
        text = f.read()
    bukvi = text 

    bait = len(bukvi) + len(bukvi.split("\n"))-1
    ui.lineEdit_2.setText(str(bait))

    word = len(bukvi.split())  #.count())
    ui.lineEdit_3.setText(str(word))

    strok = len(bukvi.split("\n")) #("\n")) #.count())
    ui.lineEdit_4.setText(str(strok))      
 
 
app = QApplication(sys.argv)

ui = uic.loadUi("q1193230.ui")
ui.pushButton.clicked.connect(onClick)            
ui.pushButton_2.clicked.connect(on_pushButton_2_clicked)
ui.show()

sys.exit(app.exec_())

q1193230.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Form</class>
 <widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>422</width>
    <height>445</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <layout class="QGridLayout" name="gridLayout">
   <item row="1" column="2">
    <widget class="QLineEdit" name="lineEdit_2"/>
   </item>
   <item row="0" column="0">
    <widget class="QPushButton" name="pushButton">
     <property name="text">
      <string>Обзор</string>
     </property>
    </widget>
   </item>
   <item row="1" column="0">
    <widget class="QLabel" name="label">
     <property name="text">
      <string>Байты</string>
     </property>
    </widget>
   </item>
   <item row="2" column="0">
    <widget class="QLabel" name="label_2">
     <property name="text">
      <string>Слова</string>
     </property>
    </widget>
   </item>
   <item row="3" column="0">
    <widget class="QLabel" name="label_3">
     <property name="text">
      <string>Строки</string>
     </property>
    </widget>
   </item>
   <item row="4" column="2">
    <spacer name="verticalSpacer">
     <property name="orientation">
      <enum>Qt::Vertical</enum>
     </property>
     <property name="sizeHint" stdset="0">
      <size>
       <width>20</width>
       <height>306</height>
      </size>
     </property>
    </spacer>
   </item>
   <item row="0" column="2">
    <widget class="QLineEdit" name="lineEdit"/>
   </item>
   <item row="4" column="0">
    <widget class="QPushButton" name="pushButton_2">
     <property name="text">
      <string>Обработать</string>
     </property>
    </widget>
   </item>
   <item row="2" column="2">
    <widget class="QLineEdit" name="lineEdit_3"/>
   </item>
   <item row="3" column="2">
    <widget class="QLineEdit" name="lineEdit_4"/>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections/>
</ui>

q1193230.txt

строка 1
строка 2
строка 3

введите сюда описание изображения

→ Ссылка