1
- from __future__ import print_function
2
-
3
1
###############################################################################
4
2
# volumina: volume slicing and editing library
5
3
#
6
- # Copyright (C) 2011-2014 , the ilastik developers
4
+ # Copyright (C) 2011-2024 , the ilastik developers
7
5
8
6
#
9
7
# This program is free software; you can redistribute it and/or
34
32
QSpacerItem ,
35
33
QSizePolicy ,
36
34
)
37
- from PyQt5 .QtCore import QRegExp , Qt , QTimer , pyqtSignal
35
+ from PyQt5 .QtCore import Qt , pyqtSignal
38
36
from PyQt5 import uic
39
37
import numpy
40
38
41
39
42
40
class ValueRangeWidget (QWidget ):
43
-
44
41
changedSignal = pyqtSignal ()
45
42
46
43
def __init__ (self , parent = None , dtype = numpy .float32 ):
47
44
super (ValueRangeWidget , self ).__init__ (parent )
48
45
self ._blank = False
49
46
self ._initUic ()
50
- self .allValid = True
51
47
self .minBox .setButtonSymbols (QDoubleSpinBox .NoButtons )
52
48
self .maxBox .setButtonSymbols (QDoubleSpinBox .NoButtons )
53
49
self .minBox .setKeyboardTracking (False )
@@ -76,8 +72,6 @@ def setDType(self, dtype):
76
72
box .setSingleStep (1 )
77
73
box .setRange (dtypeInfo .min , dtypeInfo .max )
78
74
79
- # box.setRange(typeLimits[0],typeLimits[1])
80
-
81
75
self .setLimits (dtypeInfo .min , dtypeInfo .max )
82
76
83
77
def setBlank (self ):
@@ -92,57 +86,21 @@ def onChangedMinBox(self, val):
92
86
self .maxBox .setValue (val + self .maxBox .singleStep ())
93
87
if val < self .softLimits [0 ]:
94
88
self .minBox .setValue (self .softLimits [0 ])
95
- self .validateRange ()
96
89
self .changedSignal .emit ()
97
90
98
91
def onChangedMaxBox (self , val ):
99
92
if val >= self .softLimits [1 ]:
100
93
self .maxBox .setValue (self .softLimits [1 ])
101
94
if self .maxBox .value () <= self .minBox .value ():
102
95
self .minBox .setValue (self .maxBox .value () - self .minBox .singleStep ())
103
- self .validateRange ()
104
- # self.printLimits()
105
96
self .changedSignal .emit ()
106
97
107
- def printLimits (self ):
108
- print (self .softLimits )
109
-
110
- def validateRange (self ):
111
- validCheck = [True , True ]
112
- if self .minBox .value () < self .softLimits [0 ]:
113
- validCheck [0 ] = False
114
- if self .maxBox .value () <= self .softLimits [0 ]:
115
- validCheck [1 ] = False
116
- if self .minBox .value () >= self .softLimits [1 ]:
117
- validCheck [0 ] = False
118
- if self .maxBox .value () > self .softLimits [1 ]:
119
- validCheck [1 ] = False
120
- # if not self.maxBox.value() > self.minBox.value():
121
- # validCheck[1] = False
122
-
123
- for i , box in enumerate (self .boxes ):
124
- if self ._blank or validCheck [i ]:
125
- box .setStyleSheet ("QDoubleSpinBox {background-color: white;}" )
126
- # self.setBackgroundColor("white", [i])
127
- # box.setButtonSymbols(QDoubleSpinBox.NoButtons)
128
- else :
129
- self .setBackgroundColor ("red" , [i ])
130
- # box.setStyleSheet("QDoubleSpinBox {background-color: red;}")
131
- # box.setButtonSymbols(QDoubleSpinBox.UpDownArrows)
132
-
133
- self .allValid = all (validCheck )
134
-
135
- def setBackgroundColor (self , color , boxnumber = [0 , 1 ]):
136
- for i in boxnumber :
137
- self .boxes [i ].setStyleSheet ("QDoubleSpinBox {background-color: %s}" % color )
138
-
139
98
def setLimits (self , _min , _max ):
140
99
if _min + self .minBox .singleStep () > _max :
141
100
raise RuntimeError ("limits have to differ" )
142
101
self .softLimits = [_min , _max ]
143
102
if not self ._blank :
144
103
self .setValues (_min , _max )
145
- self .validateRange ()
146
104
147
105
def setValues (self , val1 , val2 ):
148
106
self ._blank = False
@@ -163,10 +121,6 @@ def getValues(self):
163
121
def getLimits (self ):
164
122
return self .softLimits
165
123
166
- def makeValid (self ):
167
- if not self .maxBox .value () > self .minBox .value ():
168
- self .maxBox .setValue (self .minBox .value () + self .maxBox .singleStep ())
169
-
170
124
def _initUic (self ):
171
125
p = os .path .split (__file__ )[0 ] + "/"
172
126
if p == "/" :
@@ -244,13 +198,12 @@ def focusInEvent(self, QFocusEvent):
244
198
245
199
if __name__ == "__main__" :
246
200
from PyQt5 .QtWidgets import QApplication
247
- import vigra , numpy
201
+ import numpy
248
202
249
203
app = QApplication (list ())
250
204
251
205
d = ValueRangeWidget ()
252
206
d .setDType (numpy .uint8 )
253
- d .makeValid ()
254
207
d .setLimits (20 , 40 )
255
208
d .show ()
256
209
app .exec_ ()
0 commit comments