Не работает программа с интерфейсом на 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:
Файл, который считывается: файл, который считывается
Ответы (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

