Как использовать пока l oop в этом окне pyqt5 - PullRequest
0 голосов
/ 31 января 2020

Это мой первый вопрос здесь. Я рассмотрел некоторые похожие вопросы, но на самом деле он не помог мне с моим собственным кодом (или мне не удалось применить возможное решение к моему коду, я не уверен).

У меня есть этот код, который показывает время в окне, когда я его запускаю, но он не обновляется, и если я хочу увидеть текущее время, я должен запустить его снова. Я попытался включить, пока l oop где-то, но я не мог. Обычно, когда я получаю данные с веб-сайтов, используя красивый суп или селен, я могу поместить их на некоторое время l oop и поддерживать их в рабочем состоянии без каких-либо проблем, но я не мог этого добиться в этом Окно pyqt5. Что я могу сделать?

import sys
import time
from PyQt5 import QtWidgets,QtCore
import requests
from bs4 import BeautifulSoup

class Window(QtWidgets.QWidget):

    def __init__(self):
        super().__init__()
        self.init_ui()
    def  init_ui(self):
        self.textfield = QtWidgets.QLabel("")
        sonuc = self.gettime()

        v_box = QtWidgets.QVBoxLayout()

        v_box.addWidget(self.textfield)
        v_box.addStretch()

        h_box = QtWidgets.QHBoxLayout()

        h_box.addStretch()
        h_box.addLayout(v_box)
        h_box.addStretch()

        self.setLayout(h_box)
        self.setWindowTitle("Time")
        self.show()
    def gettime(self):

        url = "https://onlinesaat.web.tr/saat-kac/"
        a = requests.get(url)
        b = a.content
        soup = BeautifulSoup(b,"html.parser")

        for i in soup.find_all("span",{"id":"lbl-time"}):
            self.textfield.setText(i.text)

app = QtWidgets.QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())

1 Ответ

0 голосов
/ 31 января 2020

использовать QTimer

например, это вызывает вашу функцию gettime каждые 1000 миллисекунд (1сек)

...
def  init_ui(self):
    self.textfield = QtWidgets.QLabel("")
    timer = QtCore.QTimer(self)
    timer.timeout.connect(self.gettime)
    timer.start(1000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...