當(dāng)我點(diǎn)擊最小化按鈕在后臺(tái)執(zhí)行這個(gè)操作時(shí),線程經(jīng)常會(huì)超出限制時(shí)間執(zhí)行,喚醒后臺(tái)的程序就恢復(fù)正常了。請(qǐng)耐心等待,大約一分鐘后就會(huì)出現(xiàn)。import sys, random, time, functoolsfrom PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMainWindow, QHBoxLayoutfrom PyQt5.QtCore import QThread, QObjectdef clock(func): @functools.wraps(func) def clocked(*args, **kwargs): t0 = time.time() result = func(*args, **kwargs) elapsed = time.time() - t0 name = func.__name__ l_arg = [] if args: l_arg.append(', '.join(repr(arg) for arg in args)) arg_str = ', '.join(l_arg) print('[%0.5fs] %s(%s)' % (elapsed, name, arg_str)) return result return clocked@clockdef go_sleep(sleep_time): time.sleep(sleep_time)def go_run(): for i in range(100): go_sleep(random.randint(1, 3))class WorkThread(QObject): def __int__(self): super(WorkThread, self).__init__() def run(self): go_run()class WinForm(QMainWindow): def __init__(self, parent=None): super(WinForm, self).__init__(parent) self.button1 = QPushButton('Run') self.button1.clicked.connect(self.onButtonClick) self._thread = QThread(self) self.wt = WorkThread() self.wt.moveToThread(self._thread) layout = QHBoxLayout() layout.addWidget(self.button1) main_frame = QWidget() main_frame.setLayout(layout) self.setCentralWidget(main_frame) def onButtonClick(self): self.button1.setText('Running') self._thread.started.connect(self.wt.run) self._thread.start()if __name__ == "__main__": app = QApplication(sys.argv) form = WinForm() form.show() sys.exit(app.exec_())
1 回答

小怪獸愛吃肉
TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
關(guān)閉 App Nap
defaults write NSGlobalDomain NSAppSleepDisabled -bool YES
添加回答
舉報(bào)
0/150
提交
取消