Как в QLabel одного окна загрузить содержимое *.txt файла, прочитанного в другом окне
У меня есть файл, путь к которому я запрашиваю у пользователя.
Как сделать чтобы содержимое этого файла появлялось в QLabel
?
Нужно чтобы данные из файла появлялись в QLabel
в другом окне, при этом окно MainWindow
закрывалось бы.
У меня есть 3
окна. В главном окне есть 2
кнопки:
- 1-выбор файла пользователем;
- 2-переход ко 2-ому окну.
Мне нужно чтобы после выбора файла (файл будет в формате pdf), вся информация, которая была в этом файле переносилась в третье окно в QLabel
.
Код из главного окна main.py:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QFileDialog, QLabel
from newrules import Ui_Form
from form import *
class Ui_MainWindow(object):
def openWindow(self):
self.window=QtWidgets.QWidget()
self.ui=Ui_Form()
self.ui.setupUi3(self.window)
self.window.show()
MainWindow.hide()
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(763, 544)
MainWindow.setMinimumSize(QtCore.QSize(0, 0))
font = QtGui.QFont()
font.setPointSize(18)
MainWindow.setFont(font)
MainWindow.setStyleSheet("background-color: rgb(16, 209, 235);\n"
"")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
self.layoutWidget.setGeometry(QtCore.QRect(30, 48, 711, 441))
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.text_zagolovok = QtWidgets.QTextBrowser(self.layoutWidget)
self.text_zagolovok.setMaximumSize(QtCore.QSize(16777215, 100))
self.text_zagolovok.setBaseSize(QtCore.QSize(0, 100))
self.text_zagolovok.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(16, 209, 235);")
self.text_zagolovok.setObjectName("text_zagolovok")
self.verticalLayout_3.addWidget(self.text_zagolovok)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.pushButton_4 = QtWidgets.QPushButton(self.layoutWidget, clicked=lambda: self.openWindow())
self.pushButton_4.setMinimumSize(QtCore.QSize(350, 150))
font = QtGui.QFont()
font.setPointSize(18)
self.pushButton_4.setFont(font)
self.pushButton_4.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(16, 209, 235);")
self.pushButton_4.setObjectName("pushButton_4")
self.verticalLayout.addWidget(self.pushButton_4)
self.pushButton_3 = QtWidgets.QPushButton(self.layoutWidget)
self.pushButton_3.setMinimumSize(QtCore.QSize(350, 150))
font = QtGui.QFont()
font.setPointSize(18)
self.pushButton_3.setFont(font)
self.pushButton_3.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(16, 209, 235);")
self.pushButton_3.setObjectName("pushButton_3")
self.verticalLayout.addWidget(self.pushButton_3)
self.verticalLayout_2.addLayout(self.verticalLayout)
self.verticalLayout_3.addLayout(self.verticalLayout_2)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
self.addFunc()
def addFunc(self):
self.pushButton_3.clicked.connect(self.write_file)
def write_file(self):
res = QFileDialog.getOpenFileName()[0]
f = open(res, "r", -1, "utf-8")
#В этой переменной скопирована вся информация из выбранного файла. Я думаю что ее можно вставить в третье окно в переменную label
all_f = f.read()
f.close()
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "ГЕНЕРАТОР ТЕСТОВ"))
self.text_zagolovok.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:18pt;\"><br /></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:28pt;\">Генератор тестов</span></p></body></html>"))
self.pushButton_4.setText(_translate("MainWindow", "Начать тест"))
self.pushButton_3.setText(_translate("MainWindow", "Добавить файл с тестом"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow =QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Код из второго окна newrules.py:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from form import Ui_Form1
class Ui_Form(object):
def opentest(self):
self.window1 = QtWidgets.QWidget()
self.ui = Ui_Form1()
self.ui.setupUi(self.window1)
self.window1.show()
def setupUi3(self, Form):
Form.setObjectName("Form")
Form.resize(711, 441)
Form.setStyleSheet("background-color: rgb(16, 209, 235)")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(16, 12, 681, 351))
self.label.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(16, 209, 235);")
self.label.setObjectName("label")
self.push_btn_starttest = QtWidgets.QPushButton(Form, clicked = lambda: self.opentest())
self.push_btn_starttest.setGeometry(QtCore.QRect(520, 370, 181, 61))
self.push_btn_starttest.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(16, 209, 235);")
self.push_btn_starttest.setObjectName("push_btn_starttest")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "правила для работы"))
self.push_btn_starttest.setText(_translate("Form", "Начать тест"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
Третье окно form.py, текст из выбранного файла должен появиться именно в переменной QLabel
с названием "label":
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form1(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(715, 639)
Form.setStyleSheet("background-color: rgb(16, 209, 235)")
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(10, 10, 691, 501))
self.label.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(16, 209, 235);")
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(600, 530, 101, 91))
self.pushButton.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"color: rgb(16, 209, 235);")
self.pushButton.setObjectName("pushButton")
self.layoutWidget = QtWidgets.QWidget(Form)
self.layoutWidget.setGeometry(QtCore.QRect(10, 530, 581, 91))
self.layoutWidget.setObjectName("layoutWidget")
self.verticalLayout_11 = QtWidgets.QVBoxLayout(self.layoutWidget)
self.verticalLayout_11.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_11.setObjectName("verticalLayout_11")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.label_2 = QtWidgets.QLabel(self.layoutWidget)
self.label_2.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_2.setObjectName("label_2")
self.horizontalLayout_2.addWidget(self.label_2)
self.label_4 = QtWidgets.QLabel(self.layoutWidget)
self.label_4.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_4.setObjectName("label_4")
self.horizontalLayout_2.addWidget(self.label_4)
self.label_3 = QtWidgets.QLabel(self.layoutWidget)
self.label_3.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_3.setObjectName("label_3")
self.horizontalLayout_2.addWidget(self.label_3)
self.label_5 = QtWidgets.QLabel(self.layoutWidget)
self.label_5.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_5.setObjectName("label_5")
self.horizontalLayout_2.addWidget(self.label_5)
self.label_6 = QtWidgets.QLabel(self.layoutWidget)
self.label_6.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_6.setObjectName("label_6")
self.horizontalLayout_2.addWidget(self.label_6)
self.label_7 = QtWidgets.QLabel(self.layoutWidget)
self.label_7.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_7.setObjectName("label_7")
self.horizontalLayout_2.addWidget(self.label_7)
self.label_8 = QtWidgets.QLabel(self.layoutWidget)
self.label_8.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_8.setObjectName("label_8")
self.horizontalLayout_2.addWidget(self.label_8)
self.label_9 = QtWidgets.QLabel(self.layoutWidget)
self.label_9.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_9.setObjectName("label_9")
self.horizontalLayout_2.addWidget(self.label_9)
self.label_10 = QtWidgets.QLabel(self.layoutWidget)
self.label_10.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_10.setObjectName("label_10")
self.horizontalLayout_2.addWidget(self.label_10)
self.label_11 = QtWidgets.QLabel(self.layoutWidget)
self.label_11.setStyleSheet("background-color: rgb(255, 255, 255);")
self.label_11.setObjectName("label_11")
self.horizontalLayout_2.addWidget(self.label_11)
self.verticalLayout_11.addLayout(self.horizontalLayout_2)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.radioButton_2 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_2.setObjectName("radioButton_2")
self.verticalLayout.addWidget(self.radioButton_2)
self.radioButton = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton.setObjectName("radioButton")
self.verticalLayout.addWidget(self.radioButton)
self.radioButton_3 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_3.setObjectName("radioButton_3")
self.verticalLayout.addWidget(self.radioButton_3)
self.horizontalLayout.addLayout(self.verticalLayout)
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.radioButton_4 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_4.setObjectName("radioButton_4")
self.verticalLayout_2.addWidget(self.radioButton_4)
self.radioButton_5 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_5.setObjectName("radioButton_5")
self.verticalLayout_2.addWidget(self.radioButton_5)
self.radioButton_6 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_6.setObjectName("radioButton_6")
self.verticalLayout_2.addWidget(self.radioButton_6)
self.horizontalLayout.addLayout(self.verticalLayout_2)
self.verticalLayout_3 = QtWidgets.QVBoxLayout()
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.radioButton_7 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_7.setObjectName("radioButton_7")
self.verticalLayout_3.addWidget(self.radioButton_7)
self.radioButton_8 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_8.setObjectName("radioButton_8")
self.verticalLayout_3.addWidget(self.radioButton_8)
self.radioButton_9 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_9.setObjectName("radioButton_9")
self.verticalLayout_3.addWidget(self.radioButton_9)
self.horizontalLayout.addLayout(self.verticalLayout_3)
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.radioButton_10 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_10.setObjectName("radioButton_10")
self.verticalLayout_4.addWidget(self.radioButton_10)
self.radioButton_11 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_11.setObjectName("radioButton_11")
self.verticalLayout_4.addWidget(self.radioButton_11)
self.radioButton_12 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_12.setObjectName("radioButton_12")
self.verticalLayout_4.addWidget(self.radioButton_12)
self.horizontalLayout.addLayout(self.verticalLayout_4)
self.verticalLayout_9 = QtWidgets.QVBoxLayout()
self.verticalLayout_9.setObjectName("verticalLayout_9")
self.radioButton_25 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_25.setObjectName("radioButton_25")
self.verticalLayout_9.addWidget(self.radioButton_25)
self.radioButton_26 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_26.setObjectName("radioButton_26")
self.verticalLayout_9.addWidget(self.radioButton_26)
self.radioButton_27 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_27.setObjectName("radioButton_27")
self.verticalLayout_9.addWidget(self.radioButton_27)
self.horizontalLayout.addLayout(self.verticalLayout_9)
self.verticalLayout_5 = QtWidgets.QVBoxLayout()
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.radioButton_13 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_13.setObjectName("radioButton_13")
self.verticalLayout_5.addWidget(self.radioButton_13)
self.radioButton_14 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_14.setObjectName("radioButton_14")
self.verticalLayout_5.addWidget(self.radioButton_14)
self.radioButton_15 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_15.setObjectName("radioButton_15")
self.verticalLayout_5.addWidget(self.radioButton_15)
self.horizontalLayout.addLayout(self.verticalLayout_5)
self.verticalLayout_10 = QtWidgets.QVBoxLayout()
self.verticalLayout_10.setObjectName("verticalLayout_10")
self.radioButton_28 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_28.setObjectName("radioButton_28")
self.verticalLayout_10.addWidget(self.radioButton_28)
self.radioButton_29 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_29.setObjectName("radioButton_29")
self.verticalLayout_10.addWidget(self.radioButton_29)
self.radioButton_30 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_30.setObjectName("radioButton_30")
self.verticalLayout_10.addWidget(self.radioButton_30)
self.horizontalLayout.addLayout(self.verticalLayout_10)
self.verticalLayout_7 = QtWidgets.QVBoxLayout()
self.verticalLayout_7.setObjectName("verticalLayout_7")
self.radioButton_19 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_19.setObjectName("radioButton_19")
self.verticalLayout_7.addWidget(self.radioButton_19)
self.radioButton_20 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_20.setObjectName("radioButton_20")
self.verticalLayout_7.addWidget(self.radioButton_20)
self.radioButton_21 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_21.setObjectName("radioButton_21")
self.verticalLayout_7.addWidget(self.radioButton_21)
self.horizontalLayout.addLayout(self.verticalLayout_7)
self.verticalLayout_8 = QtWidgets.QVBoxLayout()
self.verticalLayout_8.setObjectName("verticalLayout_8")
self.radioButton_22 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_22.setObjectName("radioButton_22")
self.verticalLayout_8.addWidget(self.radioButton_22)
self.radioButton_23 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_23.setObjectName("radioButton_23")
self.verticalLayout_8.addWidget(self.radioButton_23)
self.radioButton_24 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_24.setObjectName("radioButton_24")
self.verticalLayout_8.addWidget(self.radioButton_24)
self.horizontalLayout.addLayout(self.verticalLayout_8)
self.verticalLayout_6 = QtWidgets.QVBoxLayout()
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.radioButton_16 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_16.setObjectName("radioButton_16")
self.verticalLayout_6.addWidget(self.radioButton_16)
self.radioButton_17 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_17.setObjectName("radioButton_17")
self.verticalLayout_6.addWidget(self.radioButton_17)
self.radioButton_18 = QtWidgets.QRadioButton(self.layoutWidget)
self.radioButton_18.setObjectName("radioButton_18")
self.verticalLayout_6.addWidget(self.radioButton_18)
self.horizontalLayout.addLayout(self.verticalLayout_6)
self.verticalLayout_11.addLayout(self.horizontalLayout)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "сдесь должен быть текст из выбранного файла"))
self.pushButton.setText(_translate("Form", "кнопка"))
self.label_2.setText(_translate("Form", "№1"))
self.label_4.setText(_translate("Form", "№2"))
self.label_3.setText(_translate("Form", "№3"))
self.label_5.setText(_translate("Form", "№4"))
self.label_6.setText(_translate("Form", "№5"))
self.label_7.setText(_translate("Form", "№6"))
self.label_8.setText(_translate("Form", "№7"))
self.label_9.setText(_translate("Form", "№8"))
self.label_10.setText(_translate("Form", "№9"))
self.label_11.setText(_translate("Form", "№10"))
self.radioButton_2.setText(_translate("Form", "А"))
self.radioButton.setText(_translate("Form", "Б"))
self.radioButton_3.setText(_translate("Form", "В"))
self.radioButton_4.setText(_translate("Form", "А"))
self.radioButton_5.setText(_translate("Form", "Б"))
self.radioButton_6.setText(_translate("Form", "В"))
self.radioButton_7.setText(_translate("Form", "А"))
self.radioButton_8.setText(_translate("Form", "Б"))
self.radioButton_9.setText(_translate("Form", "В"))
self.radioButton_10.setText(_translate("Form", "А"))
self.radioButton_11.setText(_translate("Form", "Б"))
self.radioButton_12.setText(_translate("Form", "В"))
self.radioButton_25.setText(_translate("Form", "А"))
self.radioButton_26.setText(_translate("Form", "Б"))
self.radioButton_27.setText(_translate("Form", "В"))
self.radioButton_13.setText(_translate("Form", "А"))
self.radioButton_14.setText(_translate("Form", "Б"))
self.radioButton_15.setText(_translate("Form", "В"))
self.radioButton_28.setText(_translate("Form", "А"))
self.radioButton_29.setText(_translate("Form", "Б"))
self.radioButton_30.setText(_translate("Form", "В"))
self.radioButton_19.setText(_translate("Form", "А"))
self.radioButton_20.setText(_translate("Form", "Б"))
self.radioButton_21.setText(_translate("Form", "В"))
self.radioButton_22.setText(_translate("Form", "А"))
self.radioButton_23.setText(_translate("Form", "Б"))
self.radioButton_24.setText(_translate("Form", "В"))
self.radioButton_16.setText(_translate("Form", "А"))
self.radioButton_17.setText(_translate("Form", "Б"))
self.radioButton_18.setText(_translate("Form", "В"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form1()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())