在启动pyqt主窗口之前验证许可证

时间:2018-06-27 03:19:57

标签: python pyqt5 verify

我正在使用pyqt5在桌面应用程序中工作 在打开应用程序或启用功能之前,我需要进行在线检查许可证 做这个的最好方式是什么, 我尝试了QProgressDialog,但客户端似乎可以将其关闭并传递给应用 我还自定义了无框架窗口,但ALT F4关闭了它,并还传递给了应用程序

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我想分享我为这种情况找到的最佳解决方案(可能会有所帮助)

在主窗口中,我创建了一个新标签,我称它为verify 当应用打开时,它应该显示在窗口中间 它显示一条消息:正在验证,请稍候 我也禁用了所有应用程序按钮

现在,当我们启动应用程序时,我将在外部qthread上运行verify函数,如下所示:

    # 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()

和verify类应该是这样的:

## 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

通过这种方式,我的代码在很多情况下都可以组织和控制