Exemple #1
0
class MainWindow(QMainWindow):
    def __init__(self, settings, listener):
        super().__init__()
        self.settings = settings
        self.listener = listener
        self.setWindowTitle('Eule.py')
        self.table_widget = TableWidget(self)
        self.setCentralWidget(self.table_widget)
        self.locate_to_center()

        self.status_thread = KThread(target=self.set_status)
        self.status_thread.start()

    def locate_to_center(self):
        qtRectangle = self.frameGeometry()
        centerPoint = QDesktopWidget().availableGeometry().center()
        qtRectangle.moveCenter(centerPoint)
        self.move(qtRectangle.topLeft())

    def set_status(self):
        while True:
            self.table_widget.main_page_tab.diablo_hooked.setChecked(
                win32gui.FindWindow('D3 Main Window Class', 'Diablo III'))
            sleep(1)

    def closeEvent(self, event):
        self.settings.save()
        self.listener.thread.terminate()
        self.listener.image_recognition_thread.terminate()
        self.status_thread.terminate()
        sys.stdout = sys.__stdout__
        super().closeEvent(event)
Exemple #2
0
class DefaultKThreadTestCase(unittest.TestCase):
    def setUp(self):
        self.kthread = KThread(name = "DefaultKThreadTestThread", target = infinite_loop_func)
        
    def runTest(self):
        self.kthread.start()
        self.assertTrue(self.kthread.isAlive(), "KThread failed to start")
        # let it run for some time
        time.sleep(5)
        self.kthread.terminate()
        # give it time to process exception
        time.sleep(1)
        self.assertFalse(self.kthread.isAlive(), "KThread failed to stop")
        
    def tearDown(self):
        self.kthread.join()
        self.kthread = None