在启动 pyqt main 之前验证许可证 window

verify license before start pyqt main window

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

有什么想法吗?

我想分享我为这个案例找到的最佳解决方案(可能对某些人有帮助)

在主体window中我创建了一个新标签,我将其命名为verify 当应用程序打开时,它应该显示在 window 的中间 它有一条消息:正在验证,请稍候 我还禁用了所有应用程序按钮

现在当我们启动应用程序时,我将 运行 外部 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()

验证 class 应该是这样的:

## 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 Class 你应该有这个功能:

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

这样我的代码在很多情况下都是有条理和可控的