вывод результата в окне PyQt5
Как выводить результат в главное окно? Сделал выбор и по нажатию кнопки у меня происходит вывод в терминал результата моей функции, а как сделать вывод в это окно или пусть новое , какой виджет создавать?
import sys
from PyQt5.QtCore import *
from PyQt5 import *
from PyQt5.QtWidgets import *
class stackedExample(QWidget):
def do_leftbar(self):
self.leftlist.insertItem(0, 'Сравнение справочников') # insertItem(позиция в списке, текст)
self.leftlist.insertItem(1, 'Редактирование справочников')
# self.leftlist.insertItem(2, 'Будущий функционал')
def __init__(self):
super().__init__()
self.leftlist = QListWidget()
self.do_leftbar()
self.stack1 = QWidget()
self.stack2 = QWidget()
self.stack1UI()
self.stack2UI()
self.Stack = QStackedWidget(self)
self.Stack.addWidget(self.stack1) # возвращает индекс виджета addWidget
self.Stack.addWidget(self.stack2)
hbox = QHBoxLayout(self) # расположение макета
hbox.addWidget(self.leftlist)
hbox.addWidget(self.Stack)
self.setLayout(hbox)
self.leftlist.currentRowChanged.connect(self.display)
self.button.clicked.connect(self.gooo)
self.setGeometry(100, 100, 500, 500)
self.setWindowTitle('StackedWidget demo')
self.show()
def gooo(self):
if(self.L1.isChecked()):
print("L1 tyt my_function")
elif (self.L2.isChecked()):
print("L2")
elif (self.L3.isChecked()):
print("L3")
else:
print("select")
def stack1UI(self):
layout = QFormLayout()
face = QHBoxLayout()
self.button = QPushButton("GO")
self.L1 = QRadioButton("L1")
self.L2 = QRadioButton("L2")
self.L3 = QRadioButton("L3")
face.addWidget(self.L1)
face.addWidget(self.L2)
face.addWidget(self.L3)
layout.addRow(QLabel("select"), face)
layout.addWidget(self.button)
self.stack1.setLayout(layout)
def stack2UI(self):
layout = QFormLayout()
self.stack2.setLayout(layout)
def display(self,i):
print(i)
self.Stack.setCurrentIndex(i)
class great(QMainWindow, QWidget):
def __init__(self):
super().__init__()
a = stackedExample()
self.setGeometry(100, 100, 1000, 900)
self.setCentralWidget(a)
self.show()
def main():
app = QApplication(sys.argv)
ex = stackedExample()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
я предлагаю добавить виджет QTextEdit() и туда все выводить.
import sys
from PyQt5 import QtGui, QtWidgets, QtCore
from PyQt5.Qt import *
class StackedExample(QWidget): # StackedExample
def __init__(self):
super().__init__()
self.leftlist = QListWidget()
self.do_leftbar()
self.stack1 = QWidget()
self.stack2 = QWidget()
self.stack1UI()
self.stack2UI()
self.Stack = QStackedWidget(self)
self.Stack.addWidget(self.stack1) # возвращает индекс виджета addWidget
self.Stack.addWidget(self.stack2)
hbox = QHBoxLayout(self) # расположение макета
hbox.addWidget(self.leftlist)
hbox.addWidget(self.Stack)
self.setLayout(hbox)
self.leftlist.currentRowChanged.connect(self.display)
self.button.clicked.connect(self.gooo)
self.setGeometry(100, 100, 500, 500)
self.setWindowTitle('StackedWidget demo')
def do_leftbar(self):
# insertItem(позиция в списке, текст)
self.leftlist.insertItem(0, 'Сравнение справочников')
self.leftlist.insertItem(1, 'Редактирование справочников')
# self.leftlist.insertItem(2, 'Будущий функционал')
def gooo(self):
if(self.L1.isChecked()):
text = "L1 tyt my_function" # text
elif (self.L2.isChecked()):
text = "L2"
elif (self.L3.isChecked()):
text = "L3"
else:
text = "select"
self.textEdit.append(text) # <--- append
def stack1UI(self):
label = QLabel("select")
self.L1 = QRadioButton("L1")
self.L2 = QRadioButton("L2")
self.L3 = QRadioButton("L3")
face = QHBoxLayout()
face.addWidget(label)
face.addWidget(self.L1)
face.addWidget(self.L2)
face.addWidget(self.L3)
self.button = QPushButton("GO")
self.textEdit = QTextEdit() # + textEdit
layout = QVBoxLayout()
layout.addLayout(face)
layout.addWidget(self.button)
layout.addWidget(self.textEdit)
self.stack1.setLayout(layout)
def stack2UI(self):
layout = QFormLayout()
self.stack2.setLayout(layout)
def display(self,i):
print(i)
self.textEdit.append(f'currentRowChanged -> {i}')
self.Stack.setCurrentIndex(i)
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setFont(QFont("Times", 12, QFont.Bold))
demo = StackedExample()
demo.resize(600, 400)
demo.show()
sys.exit(app.exec_())
