Kill the tractor tree on window close.
This makes it so you don't have to ctrl-c kill apps. Add in the experimental openGL support even though I'm pretty sure it's not being used much for curve plotting (but could be wrong).tina_free_vwap
							parent
							
								
									8695542a2a
								
							
						
					
					
						commit
						cc21b0386c
					
				| 
						 | 
				
			
			@ -26,6 +26,7 @@ from typing import Tuple, Callable, Dict, Any
 | 
			
		|||
 | 
			
		||||
# Qt specific
 | 
			
		||||
import PyQt5  # noqa
 | 
			
		||||
import pyqtgraph as pg
 | 
			
		||||
from pyqtgraph import QtGui
 | 
			
		||||
from PyQt5 import QtCore
 | 
			
		||||
from PyQt5.QtCore import (
 | 
			
		||||
| 
						 | 
				
			
			@ -37,6 +38,12 @@ import tractor
 | 
			
		|||
from outcome import Error
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# pyqtgraph global config
 | 
			
		||||
# might as well enable this for now?
 | 
			
		||||
pg.useOpenGL = True
 | 
			
		||||
pg.enableExperimental = True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# singleton app per actor
 | 
			
		||||
_qt_app: QtGui.QApplication = None
 | 
			
		||||
_qt_win: QtGui.QMainWindow = None
 | 
			
		||||
| 
						 | 
				
			
			@ -67,6 +74,12 @@ class MainWindow(QtGui.QMainWindow):
 | 
			
		|||
        self.setMinimumSize(*self.size)
 | 
			
		||||
        self.setWindowTitle(self.title)
 | 
			
		||||
 | 
			
		||||
    def closeEvent(self, event: 'QCloseEvent') -> None:
 | 
			
		||||
        """Cancel the root actor asap.
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        tractor.current_actor().cancel_soon()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def run_qtractor(
 | 
			
		||||
    func: Callable,
 | 
			
		||||
| 
						 | 
				
			
			@ -131,6 +144,9 @@ def run_qtractor(
 | 
			
		|||
    instance = main_widget()
 | 
			
		||||
    instance.window = window
 | 
			
		||||
 | 
			
		||||
    # kill the app when root actor terminates
 | 
			
		||||
    tractor._actor._lifetime_stack.callback(app.quit)
 | 
			
		||||
 | 
			
		||||
    widgets = {
 | 
			
		||||
        'window': window,
 | 
			
		||||
        'main': instance,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue