|
1 |
| -from .vpython import GlowWidget, baseObj, vector, canvas |
| 1 | +from .vpython import GlowWidget, baseObj, vector, canvas, _browsertype |
2 | 2 | from ._notebook_helpers import _in_spyder, _undo_vpython_import_in_spyder
|
3 | 3 |
|
4 | 4 | from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
13 | 13 | import txaio
|
14 | 14 | import copy
|
15 | 15 | import socket
|
| 16 | +import PyQt5.QtCore |
| 17 | +import PyQt5.QtWebEngineWidgets |
| 18 | +from PyQt5.QtWidgets import QApplication |
| 19 | +import multiprocessing |
| 20 | + |
16 | 21 |
|
17 | 22 | import signal
|
18 | 23 | from urllib.parse import unquote
|
@@ -231,10 +236,26 @@ def onClose(self, wasClean, code, reason):
|
231 | 236 | else:
|
232 | 237 | __server = HTTPServer(('', __HTTP_PORT), serveHTTP)
|
233 | 238 | # or webbrowser.open_new_tab()
|
234 |
| - _webbrowser.open('http://localhost:{}'.format(__HTTP_PORT)) |
| 239 | + if(_browsertype=='default'): #uses default browser |
| 240 | + _webbrowser.open('http://localhost:{}'.format(__HTTP_PORT)) #uses default browser |
| 241 | + |
235 | 242 | except:
|
236 | 243 | pass
|
237 | 244 |
|
| 245 | + |
| 246 | +def start_Qapp(port): |
| 247 | + # creates a python browser with PyQt5 |
| 248 | + # runs qtbrowser.py in a separate process |
| 249 | + filepath=os.path.dirname(__file__) |
| 250 | + filename=filepath+'/qtbrowser.py' |
| 251 | + os.system('python '+filename+' http://localhost:{}'.format(port)) |
| 252 | + |
| 253 | + |
| 254 | +#create a browser in its own process |
| 255 | +if(_browsertype=='pyqt'): #uses default browser |
| 256 | + __m = multiprocessing.Process(target=start_Qapp, args=(__HTTP_PORT,)) |
| 257 | + __m.start() |
| 258 | + |
238 | 259 | __w = threading.Thread(target=__server.serve_forever)
|
239 | 260 | __w.start()
|
240 | 261 |
|
|
0 commit comments