15
15
#matplotlib.rcParams['backend'] = "QT4AGG"
16
16
# Do this first before any other matplotlib imports, to force matplotlib to
17
17
# use a Qt backend
18
- from matplotlib .backends .qt_compat import QtWidgets , QtCore , QtGui , _getSaveFileName
18
+ from matplotlib .backends .qt_compat import QtWidgets , QtCore , QtGui
19
19
20
20
try :
21
21
from matplotlib .backends .backend_qtagg import FigureCanvasQTAgg as FigureCanvas
39
39
from .minimvc import Trigger
40
40
41
41
42
+ Qt = QtCore .Qt
43
+
44
+
42
45
# The correct L_A value for the standard sRGB viewing conditions is:
43
46
# (64 / np.pi) / 5
44
47
# Due to an error in our color conversion code, the matplotlib colormaps were
@@ -1033,8 +1036,8 @@ def main(argv):
1033
1036
if args .quit :
1034
1037
sys .exit ()
1035
1038
1036
- figureCanvas .setSizePolicy (QtWidgets .QSizePolicy .Expanding ,
1037
- QtWidgets .QSizePolicy .Expanding )
1039
+ figureCanvas .setSizePolicy (QtWidgets .QSizePolicy .Policy . Expanding ,
1040
+ QtWidgets .QSizePolicy .Policy . Expanding )
1038
1041
figureCanvas .updateGeometry ()
1039
1042
1040
1043
mainwindow .resize (800 , 600 )
@@ -1050,7 +1053,7 @@ def main(argv):
1050
1053
import signal
1051
1054
signal .signal (signal .SIGINT , signal .SIG_DFL )
1052
1055
1053
- app . exec_ ()
1056
+ ( getattr ( app , "exec" , None ) or getattr ( app , " exec_" )) ()
1054
1057
1055
1058
def about ():
1056
1059
QtWidgets .QMessageBox .about (None , "VISCM" ,
@@ -1061,19 +1064,17 @@ def about():
1061
1064
class ViewerWindow (QtWidgets .QMainWindow ):
1062
1065
def __init__ (self , figurecanvas , viscm , cmapname , parent = None ):
1063
1066
QtWidgets .QMainWindow .__init__ (self , parent )
1064
- self .setAttribute (QtCore . Qt .WA_DeleteOnClose )
1067
+ self .setAttribute (Qt . WidgetAttribute .WA_DeleteOnClose )
1065
1068
self .main_widget = QtWidgets .QWidget (self )
1066
1069
self .cmapname = cmapname
1067
1070
1068
1071
file_menu = QtWidgets .QMenu ('&File' , self )
1069
- file_menu .addAction ('&Save' , self .save ,
1070
- QtCore .Qt .CTRL + QtCore .Qt .Key_S )
1071
- file_menu .addAction ('&Quit' , self .fileQuit ,
1072
- QtCore .Qt .CTRL + QtCore .Qt .Key_Q )
1072
+ file_menu .addAction ('&Save' , self .save ).setShortcut ('Ctrl+S' )
1073
+ file_menu .addAction ('&Quit' , self .fileQuit ).setShortcut ('Ctrl+Q' )
1073
1074
1074
1075
options_menu = QtWidgets .QMenu ('&Options' , self )
1075
- options_menu .addAction ('&Toggle Gamut' , self . toggle_gamut ,
1076
- QtCore . Qt . CTRL + QtCore . Qt . Key_G )
1076
+ options_menu .addAction (
1077
+ '&Toggle Gamut' , self . toggle_gamut ). setShortcut ( 'Ctrl+G' )
1077
1078
1078
1079
help_menu = QtWidgets .QMenu ('&Help' , self )
1079
1080
help_menu .addAction ('&About' , about )
@@ -1103,9 +1104,8 @@ def closeEvent(self, ce):
1103
1104
self .fileQuit ()
1104
1105
1105
1106
def save (self ):
1106
- fileName , _ = _getSaveFileName (
1107
- caption = "Save file" ,
1108
- directory = self .cmapname + ".png" ,
1107
+ fileName , _ = QtWidgets .QFileDialog .getSaveFileName (
1108
+ self , "Save file" , self .cmapname + ".png" ,
1109
1109
filter = "Image Files (*.png *.jpg *.bmp)" )
1110
1110
if fileName :
1111
1111
self .viscm .save_figure (fileName )
@@ -1114,19 +1114,17 @@ def save(self):
1114
1114
class EditorWindow (QtWidgets .QMainWindow ):
1115
1115
def __init__ (self , figurecanvas , viscm_editor , parent = None ):
1116
1116
QtWidgets .QMainWindow .__init__ (self , parent )
1117
- self .setAttribute (QtCore . Qt .WA_DeleteOnClose )
1117
+ self .setAttribute (Qt . WidgetAttribute .WA_DeleteOnClose )
1118
1118
self .viscm_editor = viscm_editor
1119
1119
1120
1120
file_menu = QtWidgets .QMenu ('&File' , self )
1121
- file_menu .addAction ('&Save' , self .save ,
1122
- QtCore .Qt .CTRL + QtCore .Qt .Key_S )
1121
+ file_menu .addAction ('&Save' , self .save ).setShortcut ('Ctrl+S' )
1123
1122
file_menu .addAction ("&Export .py" , self .export )
1124
- file_menu .addAction ('&Quit' , self .fileQuit ,
1125
- QtCore .Qt .CTRL + QtCore .Qt .Key_Q )
1123
+ file_menu .addAction ('&Quit' , self .fileQuit ).setShortcut ('Ctrl+Q' )
1126
1124
1127
1125
options_menu = QtWidgets .QMenu ('&Options' , self )
1128
- options_menu .addAction ('&Load in Viewer' , self . loadviewer ,
1129
- QtCore . Qt . CTRL + QtCore . Qt . Key_V )
1126
+ options_menu .addAction (
1127
+ '&Load in Viewer' , self . loadviewer ). setShortcut ( 'Ctrl+V' )
1130
1128
1131
1129
help_menu = QtWidgets .QMenu ('&Help' , self )
1132
1130
help_menu .addAction ('&About' , about )
@@ -1138,21 +1136,23 @@ def __init__(self, figurecanvas, viscm_editor, parent=None):
1138
1136
1139
1137
self .main_widget = QtWidgets .QWidget (self )
1140
1138
1141
- self .max_slider = QtWidgets .QSlider (QtCore . Qt .Horizontal )
1139
+ self .max_slider = QtWidgets .QSlider (Qt . Orientation .Horizontal )
1142
1140
self .max_slider .setMinimum (0 )
1143
1141
self .max_slider .setMaximum (100 )
1144
1142
self .max_slider .setValue (viscm_editor .max_Jp )
1145
- self .max_slider .setTickPosition (QtWidgets .QSlider .TicksBelow )
1143
+ self .max_slider .setTickPosition (
1144
+ QtWidgets .QSlider .TickPosition .TicksBelow )
1146
1145
self .max_slider .setTickInterval (10 )
1147
1146
self .max_slider .valueChanged .connect (self .updatejp )
1148
1147
self .max_slider_num = QtWidgets .QLabel (str (viscm_editor .max_Jp ))
1149
1148
self .max_slider_num .setFixedWidth (30 )
1150
1149
1151
- self .min_slider = QtWidgets .QSlider (QtCore . Qt .Horizontal )
1150
+ self .min_slider = QtWidgets .QSlider (Qt . Orientation .Horizontal )
1152
1151
self .min_slider .setMinimum (0 )
1153
1152
self .min_slider .setMaximum (100 )
1154
1153
self .min_slider .setValue (viscm_editor .min_Jp )
1155
- self .min_slider .setTickPosition (QtWidgets .QSlider .TicksBelow )
1154
+ self .min_slider .setTickPosition (
1155
+ QtWidgets .QSlider .TickPosition .TicksBelow )
1156
1156
self .min_slider .setTickInterval (10 )
1157
1157
self .min_slider .valueChanged .connect (self .updatejp )
1158
1158
self .min_slider_num = QtWidgets .QLabel (str (viscm_editor .min_Jp ))
@@ -1176,7 +1176,7 @@ def __init__(self, figurecanvas, viscm_editor, parent=None):
1176
1176
mainlayout .addLayout (min_slider_layout )
1177
1177
1178
1178
if viscm_editor .cmtype == "diverging" :
1179
- smoothness_slider = QtWidgets .QSlider (QtCore . Qt .Horizontal )
1179
+ smoothness_slider = QtWidgets .QSlider (Qt .Horizontal )
1180
1180
# We want the slider to vary filter_k exponentially between 5 and
1181
1181
# 1000. So it should go from [log10(5), log10(1000)]
1182
1182
# which is about [0.699, 3.0]
@@ -1193,7 +1193,7 @@ def __init__(self, figurecanvas, viscm_editor, parent=None):
1193
1193
metrics = QtGui .QFontMetrics (smoothness_slider_num .font ())
1194
1194
max_width = metrics .width ("1000.00" )
1195
1195
smoothness_slider_num .setFixedWidth (max_width )
1196
- smoothness_slider_num .setAlignment (QtCore . Qt .AlignRight )
1196
+ smoothness_slider_num .setAlignment (Qt .AlignRight )
1197
1197
self .smoothness_slider_num = smoothness_slider_num
1198
1198
1199
1199
smoothness_slider_layout = QtWidgets .QHBoxLayout ()
@@ -1208,42 +1208,30 @@ def __init__(self, figurecanvas, viscm_editor, parent=None):
1208
1208
viscm_editor .cmap_model .filter_k_trigger .add_callback (
1209
1209
self .update_smoothness_slider )
1210
1210
1211
- self .moveAction = QtWidgets .QAction ("Drag points" , self )
1211
+ self .toolbar = self .addToolBar ('Tools' )
1212
+ self .moveAction = self .toolbar .addAction ("Drag points" )
1212
1213
self .moveAction .triggered .connect (self .set_move_mode )
1213
1214
self .moveAction .setCheckable (True )
1214
-
1215
- self .addAction = QtWidgets .QAction ("Add points" , self )
1215
+ self .addAction = self .toolbar .addAction ("Add points" )
1216
1216
self .addAction .triggered .connect (self .set_add_mode )
1217
1217
self .addAction .setCheckable (True )
1218
-
1219
- self .removeAction = QtWidgets .QAction ("Remove points" , self )
1218
+ self .removeAction = self .toolbar .addAction ("Remove points" )
1220
1219
self .removeAction .triggered .connect (self .set_remove_mode )
1221
1220
self .removeAction .setCheckable (True )
1222
-
1223
- self .swapAction = QtWidgets . QAction ("Flip brightness" , self )
1221
+ self . toolbar . addSeparator ()
1222
+ self .swapAction = self . toolbar . addAction ("Flip brightness" )
1224
1223
self .swapAction .triggered .connect (self .swapjp )
1225
- renameAction = QtWidgets .QAction ("Rename colormap" , self )
1224
+ self .toolbar .addSeparator ()
1225
+ renameAction = self .toolbar .addAction ("Rename colormap" )
1226
1226
renameAction .triggered .connect (self .rename )
1227
-
1228
- saveAction = QtWidgets .QAction ('Save' , self )
1227
+ saveAction = self .toolbar .addAction ("Save" )
1229
1228
saveAction .triggered .connect (self .save )
1230
1229
1231
-
1232
- self .toolbar = self .addToolBar ('Tools' )
1233
- self .toolbar .addAction (self .moveAction )
1234
- self .toolbar .addAction (self .addAction )
1235
- self .toolbar .addAction (self .removeAction )
1236
- self .toolbar .addSeparator ()
1237
- self .toolbar .addAction (self .swapAction )
1238
- self .toolbar .addSeparator ()
1239
- self .toolbar .addAction (renameAction )
1240
- self .toolbar .addAction (saveAction )
1241
-
1242
1230
self .moveAction .setChecked (True )
1243
1231
1244
1232
self .main_widget .setFocus ()
1245
1233
figurecanvas .setFocus ()
1246
- figurecanvas .setFocusPolicy (QtCore . Qt .StrongFocus )
1234
+ figurecanvas .setFocusPolicy (Qt . FocusPolicy .StrongFocus )
1247
1235
self .setCentralWidget (self .main_widget )
1248
1236
1249
1237
def rename (self ):
@@ -1293,9 +1281,8 @@ def set_remove_mode(self):
1293
1281
self .viscm_editor .bezier_builder .mode = "remove"
1294
1282
1295
1283
def export (self ):
1296
- fileName , _ = _getSaveFileName (
1297
- caption = "Export file" ,
1298
- directory = self .viscm_editor .name + ".py" ,
1284
+ fileName , _ = QtWidgets .QFileDialog .getSaveFileName (
1285
+ self , "Export file" , self .viscm_editor .name + ".py" ,
1299
1286
filter = ".py (*.py)" )
1300
1287
if fileName :
1301
1288
self .viscm_editor .export_py (fileName )
@@ -1307,9 +1294,8 @@ def closeEvent(self, ce):
1307
1294
self .fileQuit ()
1308
1295
1309
1296
def save (self ):
1310
- fileName , _ = _getSaveFileName (
1311
- caption = "Save file" ,
1312
- directory = self .viscm_editor .name + ".jscm" ,
1297
+ fileName , _ = QtWidgets .QFileDialog .getSaveFileName (
1298
+ self , "Save file" , self .viscm_editor .name + ".jscm" ,
1313
1299
filter = "JSCM Files (*.jscm)" )
1314
1300
if fileName :
1315
1301
self .viscm_editor .save_colormap (fileName )
@@ -1320,8 +1306,8 @@ def loadviewer(self):
1320
1306
cm = self .viscm_editor .show_viscm ()
1321
1307
v = viscm (cm , name = self .viscm_editor .name , figure = newfig )
1322
1308
1323
- newcanvas .setSizePolicy (QtWidgets .QSizePolicy .Expanding ,
1324
- QtWidgets .QSizePolicy .Expanding )
1309
+ newcanvas .setSizePolicy (QtWidgets .QSizePolicy .Policy . Expanding ,
1310
+ QtWidgets .QSizePolicy .Policy . Expanding )
1325
1311
newcanvas .updateGeometry ()
1326
1312
1327
1313
newwindow = ViewerWindow (newcanvas , v , self .viscm_editor .name , parent = self )
0 commit comments