Добрый день!
С помощью pyqt5 пишу виджет. Самый простой: две кнопки и окно отображения информации (QTextBrowser) (может неправильно этот Browser использовать).
Кнопка 1 запускает парсер.
Кнопка 2 "выход" (с этим все ОК, разобрался)
С кодом выполнения парсера все ОК. Работает. Пишет результат и в БД и в файл если нужно.
Но вот никак не могу сделать так, что бы при каждом нажатии кнопки 1 результат работы парсека выводился не командной строке, а в окне в виджете. Воюю с QTextBrowser, но ничего не получается.
Подскажите где копать или примером кода кнопки.
Спасибо.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from grab import Grab
from grab import transport
from grab.transport import curl
from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtWidgets import (QWidget, QPushButton, QHBoxLayout, QVBoxLayout, QApplication, QMainWindow, QTextBrowser)
from PyQt5.QtGui import QTextDocument
def res():
g = Grab()
g.go('http://google.com/')
global a; a = g.doc.select('//p').text()
if (a.startswith("Не Спать")):
return ((a[9:]))
else:
return("Cпать")
pass
class ConfigProgram(QtWidgets.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.section1 = Section(self)
self.stack = None
self.build_widget()
def build_widget(self):
self.setWindowTitle('Фия')
# Виджет в котором мы выбираем раздел настроек
self.tree = QTextBrowser()
self.tree.setMaximumWidth(500)
self.tree.setMinimumHeight(100)
a = res()
self.tree.setText(str(a))
#url = QtCore.QUrl('c.txt')
#tree.setSource(url)
self.stack = QtWidgets.QStackedWidget()
self.stack.addWidget(self.section1)
button_panel = self.create_button_panel()
main_layout = QtWidgets.QGridLayout() # Главный компановщик элементов окна
main_layout.addWidget(self.tree, 0, 1)
main_layout.addWidget(self.stack, 1, 1)
main_layout.addWidget(button_panel, 1, 1)
self.setLayout(main_layout)
def create_button_panel(self):
""" Создает виджет, в котором размещается кнопка выхода """
button_panel = QtWidgets.QWidget()
layout = QtWidgets.QHBoxLayout()
layout.addStretch(1)
okButton = QtWidgets.QPushButton('OK')
okButton.clicked.connect(self.buttonClicked)
cancelButton = QtWidgets.QPushButton('Закрыть')
cancelButton.clicked.connect(self.close)
layout.addWidget(okButton)
button_panel.setLayout(layout)
layout.addWidget(cancelButton)
button_panel.setLayout(layout)
return button_panel
def buttonClicked(self):
print((a[9:]))
sender = self.sender()
class Section(QtWidgets.QWidget):
def __init__(self, parent=None):
super(Section, self).__init__(parent)
self.line_edit = []
self.build_widget()
def build_widget(self):
form = QtWidgets.QFormLayout()
self.setLayout(form)
app = QtWidgets.QApplication([])
window = ConfigProgram()
window.show()
app.exec_()