Python
20
Вклад в тег
new_window = None
def new_form():
global new_window
new_window = uic.loadUi("interface2.ui")
new_window.setWindowTitle("New form")
new_window.show()
мой_список_окон = []
def new_form():
global мой_список_окон
new_window = uic.loadUi("interface2.ui")
new_window.setWindowTitle("New form")
new_window.show()
мой_список_окон.append(new_window)
def new_form(parent):
new_window = uic.loadUi("interface2.ui")
new_window.setWindowTitle("New form")
new_window.show()
new_window.setParent(parent)
import test2
main_window.pushButton.clicked.connect(lambda: test2.new_form(main_window))
def new_form(parent):
parent.new_window = uic.loadUi("interface2.ui")
parent.new_window.setWindowTitle("New form")
parent.new_window.show()
import test2
main_window.pushButton.clicked.connect(lambda: test2.new_form(main_window))
res = requests.get('http://URL/'+trek+".html")orly?
без объяснения причинну пожалуйста пользуйтесь pycharm - есть бесплатная редакция. Он честно открывает консоль для каждой запущенной программы. В которую честно пишется причина. И которая, Самое главное, не закрывается после ошибки.
import sys
import requests
import os
from PyQt5.QtWidgets import QTextBrowser
from PyQt5.Qt import QApplication
from PyQt5.Qt import QThread
trek = "index"
myapp = QApplication(sys.argv)
myapp.textBrowser = QTextBrowser()
class ExperementalThread(QThread):
def run(self):
if os.path.exists("temp/"+trek+".html"): # Если страница уже была ранее загружена
with open("temp/"+trek+".html") as w:
myapp.textBrowser.setHtml(w.read()) # ни разу не вылетело
else:
res = requests.get('http://yandex.ru/'+trek+".html")
res.encoding = 'utf-8'
with open("temp/"+trek+".html", "w") as ri:
ri.write(res.text)
myapp.textBrowser.setHtml(res.text) # И здесь
thread = ExperementalThread()
myapp.textBrowser.show()
thread.start()
myapp.exec()
# coding=utf-8
import sys, requests, os # импортировали,
from PyQt5.Qt import QApplication, QThread # импортировали,
from PyQt5.QtCore import pyqtSignal # да не
from PyQt5.QtWidgets import QTextBrowser # выпереимпортировали.
trek = "index" # ну в самом деле надо же указать чему равна ваша переменная.
myapp = QApplication(sys.argv) # я угадал?
# обязательно делаем отступы перед каждым классом
class MyQTextBrowser(QTextBrowser): # создаём класс и наследуем QTextBrowser
signal_load_html = pyqtSignal(str) # назначаем сигнал (сигнал принимает значение str (строки) )
# тут тоже отступ
def __init__(self): # переназначаем метод создания объектов
super().__init__() # наследуем/выполняем QTextBrowser.__init__(self)
self.signal_load_html.connect(self.setHtml) # тут связываем наш сигнал с setHtml
myapp.textBrowser = MyQTextBrowser() # ну и создаём вообщемто обьект нашего класса MyQTextBrowser
# обязательно делаем отступы после каджого класса.
# обязательно делаем отступы перед каждым классом
class ExperementalThread(QThread): # названия придумываем на ходу
def run(self): # init не нужен сразу run
if os.path.exists("temp/"+trek+".html"): # Если страница уже была ранее загружена
with open("temp/"+trek+".html") as w: # открываем наш фаил в папке temp
# myapp.textBrowser.setHtml(w.read()) # вылетает? у меня кстати нет, но я читер :)
myapp.textBrowser.signal_load_html.emit(w.read()) # ни разу не вылетело.
else: # люблю когда много коментариев в коде
res = requests.get('http://yandex.ru/'+trek+".html") # "Люблю говорить - это помогает думать."
res.encoding = 'utf-8' # -- Томас Стернз Элиот
with open("temp/"+trek+".html", "w") as ri: # когда этот код уже кончится?
ri.write(res.text) # тут пусто потому что в оригинале у вас был "URL" а не yandex
# myapp.textBrowser.setHtml(res.text) # И здесь
myapp.textBrowser.signal_load_html.emit(res.text) # ни разу не вылетело
# обязательно делаем отступы после каждого класса.
thread = ExperementalThread() # создаём наш поток
myapp.textBrowser.show() # ах да - самое главное показать окно. Иначе ничего не произойдёт
thread.start() # запускаем поток
myapp.exec() # Ой, всё!()