pyqt5: переместить функцию в другой файл и затем вызывать ее с qtimer каждую X сек. - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть приложение GUI, которое получает через API некоторую случайную информацию (погоду, текущее время, курсы валют, ...) Поскольку мой файл app.py становится грязным, я хочу переместить отдельные функции в разные файлы ( weather.py , currenttime.py , exchange_rates.py ), чтобы сохранить мои app.py clean.

Вот пример кода, содержащий только часы:

import json
import requests
from PyQt5 import QtCore, QtGui, QtWidgets, uic
import sys
import time
from time import localtime, strftime, gmtime

class bulletindesktop(QtWidgets.QMainWindow):
    def __init__(self):
        super(bulletindesktop, self).__init__()
        uic.loadUi("bulletindesktop.ui", self)  # loads the UI

        # Initializes the Clock(updates itself every sec)
        clock = QtCore.QTimer(self, interval=1000, timeout=self.showTime)
        clock.start()
        self.showTime()

    @QtCore.pyqtSlot()
    def showTime(self):
        # Clock
        time = QtCore.QTime.currentTime()  # gets current time
        timeText = time.toString("HH mm" if time.second() %
                                 2 == 0 else "HH:mm")  # changes time to string,
        self.labelTime.setText(timeText)
        # Date
        self.labelDate.setText(strftime("%d.%m.%Y", localtime()))
        # Day
        self.labelDay.setText(strftime("%A", localtime()))

app = QtWidgets.QApplication([])  # initializes pyqt
win = bulletindesktop()  # adds Example class to "win"
win.show()  # shows window
sys.exit(app.exec())

Здесь я хочу переместить функцию showTime в файл с именем currenttime.py в папке modules . Тем не менее, я думаю, что пытался всеми возможными способами до сих пор.

Как я могу переместить функцию в другой файл и вызвать его оттуда?

Полный код можно найти здесь: https://github.com/netspherecyborg/BulletinDesktop

...