Skip to content

Commit 0317d92

Browse files
committed
centralize qt app creation and check whether an app already exists
1 parent ef6df39 commit 0317d92

20 files changed

Lines changed: 31 additions & 46 deletions

src/PyMca5/PyMcaCore/XiaCorrect.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,7 @@ def main(args):
261261
and not args.livetime
262262
and not args.sums
263263
):
264-
app = qt.QApplication([])
265-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
264+
app = PyMcaAppInit.create_qt_app(cli_args=args)
266265

267266
wid = XiaCorrectWizard.XiaCorrectWizard()
268267

src/PyMca5/PyMcaGui/PyMcaAppInit.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@
4040
4141
4242
def main(args):
43-
app = qt.QApplication([])
44-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
43+
app = PyMcaAppInit.create_qt_app(cli_args=args)
4544
4645
... # Main widget
4746
@@ -101,12 +100,17 @@ def init_before_app_create(qt=True, hdf5=True):
101100
_init_qt_before()
102101

103102

104-
def init_before_app_start(qt_app=None, cli_args=None):
105-
"""
106-
Call this after instantiating and before starting the application.
107-
"""
108-
if qt_app:
109-
_init_qt_after(qt_app, cli_args)
103+
def create_qt_app(cli_args=None):
104+
from PyMca5.PyMcaGui import PyMcaQt as qt
105+
106+
if qt.QApplication.instance() is not None:
107+
raise RuntimeError("A QApplication already exists")
108+
109+
app = qt.QApplication([])
110+
111+
_init_qt_after(app, cli_args)
112+
113+
return app
110114

111115

112116
def _silent_pre_cli_app():

src/PyMca5/PyMcaGui/physics/xrf/ConcentrationsWidget.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -888,8 +888,7 @@ def _mySlot(self, ddict):
888888

889889

890890
def main(args):
891-
app = qt.QApplication([])
892-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
891+
app = PyMcaAppInit.create_qt_app(cli_args=args)
893892

894893
demo = Concentrations()
895894
config = demo.getParameters()

src/PyMca5/PyMcaGui/physics/xrf/ElementsInfo.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,7 @@ def focusOutEvent(self,event):
288288

289289

290290
def main(args):
291-
app = qt.QApplication([])
292-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
291+
app = PyMcaAppInit.create_qt_app(cli_args=args)
293292

294293
w = ElementsInfo()
295294
w.show()

src/PyMca5/PyMcaGui/physics/xrf/McaCalWidget.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1599,8 +1599,7 @@ def main(args):
15991599
x = numpy.arange(len(y)).astype(numpy.float64)
16001600

16011601
# Qt application
1602-
app = qt.QApplication([])
1603-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
1602+
app = PyMcaAppInit.create_qt_app(cli_args=args)
16041603

16051604
demo = McaCalWidget(
16061605
x=x,

src/PyMca5/PyMcaGui/physics/xrf/PeakIdentifier.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,7 @@ def focusOutEvent(self,event):
296296

297297

298298
def main(args):
299-
app = qt.QApplication([])
300-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
299+
app = PyMcaAppInit.create_qt_app(cli_args=args)
301300

302301
mw = qt.QWidget()
303302
l = qt.QVBoxLayout(mw)

src/PyMca5/PyMcaGui/plotting/ImageView.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -953,8 +953,7 @@ def main(args):
953953
'Cannot read image(s) from file: %s' % args.filename)
954954

955955
# Set-up Qt application and main window
956-
app = qt.QApplication([])
957-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
956+
app = PyMcaAppInit.create_qt_app(cli_args=args)
958957

959958
mainWindow = ImageViewMainWindow(backend=args.backend)
960959
mainWindow.setImage(edfFile.GetData(0),

src/PyMca5/PyMcaGui/plotting/MaskImageWidget.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2187,8 +2187,7 @@ def getImageMask(image, mask=None):
21872187

21882188

21892189
def main(args):
2190-
app = qt.QApplication([])
2191-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
2190+
app = PyMcaAppInit.create_qt_app(cli_args=args)
21922191

21932192
if args.filename:
21942193
container = MaskImageWidget(backend=args.backend,

src/PyMca5/PyMcaGui/pymca/EdfFileSimpleViewer.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,7 @@ def setFileList(self, filelist):
120120

121121
def main(args):
122122
# Qt application
123-
app = qt.QApplication([])
124-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
123+
app = PyMcaAppInit.create_qt_app(cli_args=args)
125124

126125
# File list (expand wildcards on Windows)
127126
filelist = list(args.files)

src/PyMca5/PyMcaGui/pymca/Fit2Spec.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,8 +406,7 @@ def main(args):
406406
filelist = [line.strip() for line in fd.readlines()]
407407

408408
# Qt application
409-
app = qt.QApplication([])
410-
PyMcaAppInit.init_before_app_start(qt_app=app, cli_args=args)
409+
app = PyMcaAppInit.create_qt_app(cli_args=args)
411410

412411
# Launch GUI if no files provided
413412
if len(filelist) == 0:

0 commit comments

Comments
 (0)