проверить лицензию перед запуском главного окна pyqt - PullRequest
0 голосов
/ 27 июня 2018

Я работаю в настольном приложении, используя pyqt5 Мне нужно сделать онлайн-проверку лицензии перед открытием приложения или включением функций Каков наилучший способ сделать это, Я попробовал QProgressDialog, но кажется, что клиент может закрыть его и передать в приложение также я настраиваю безрамное окно, но ALT F4 закрывает его и также передает в приложение

есть идеи?

1 Ответ

0 голосов
/ 03 июля 2018

Я хочу поделиться лучшим решением, которое я нашел для этого случая (может помочь кому-нибудь)

в главном окне я создал новый ярлык, я назвал его проверить оно должно отображаться в середине окна при открытии приложения это сообщение, как: проверка, пожалуйста, подождите Я также отключаю все кнопки приложения

Теперь, когда мы запустим приложение, я буду запускать функцию проверки на внешнем qthread, что-то вроде этого:

    # verifyClass thread
    verifyInstance = verifyClass()
    verifyInstance.sig.connect(self.verify_func)
    thread = QThread()
    self._v_thread = (thread, verifyInstance)
    verifyInstance.moveToThread(thread)
    thread.started.connect(verifyInstance.verify_func)
    thread.start()

и класс проверки должен выглядеть примерно так:

## verifyClass
class verifyClass(QObject):
    sig = pyqtSignal(int)
    def __init__(self):
        super().__init__()
    @pyqtSlot()
    def verify_func(self):
        ## your verification code
        self.sig.emit(1) ## mean the verification is okay, do it if verification success

и в классе mainWin у вас должна быть эта функция:

def verify_func(self,i):
    if i == 1:
        self.ui.verify.hide()
        ## enable your buttons

и таким образом мой код организован и управляется во многих случаях

...