Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
X
xsocs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
22
Issues
22
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
kmap
xsocs
Commits
b4014267
Commit
b4014267
authored
Jul 25, 2018
by
Thomas Vincent
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make RoiAxisWidget use new RangeSlider + add getSliderState method there
parent
18a704e1
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
23 deletions
+36
-23
xsocs/gui/widgets/RoiAxisWidget.py
xsocs/gui/widgets/RoiAxisWidget.py
+36
-23
No files found.
xsocs/gui/widgets/RoiAxisWidget.py
View file @
b4014267
...
...
@@ -30,11 +30,18 @@ __license__ = "MIT"
__date__
=
"15/09/2016"
from
collections
import
namedtuple
from
silx.gui
import
qt
as
Qt
from
..widgets.RangeSlider
import
RangeSlider
from
..silx_imports.RangeSlider
import
RangeSlider
from
..widgets.Input
import
StyledLineEdit
,
FixedSizeLabel
RangeSliderState
=
namedtuple
(
'RangeSliderState'
,
[
'left'
,
'right'
,
'leftIndex'
,
'rightIndex'
])
class
RoiAxisWidget
(
Qt
.
QWidget
):
"""
Widget with a double slider and two line edit
...
...
@@ -42,9 +49,7 @@ class RoiAxisWidget(Qt.QWidget):
"""
sigSliderMoved
=
Qt
.
Signal
(
object
)
""" Signal triggered when the slider is moved. Equivalent to connecting
directly to the sliders sigSliderMoved signal.
"""
""" Signal triggered when the slider values has changed."""
def
slider
(
self
):
"""
...
...
@@ -65,7 +70,7 @@ class RoiAxisWidget(Qt.QWidget):
qLabel
=
FixedSizeLabel
(
nChar
=
1
)
qLabel
.
setFrameStyle
(
Qt
.
QFrame
.
NoFrame
|
Qt
.
QFrame
.
Plain
)
qLabel
.
setText
(
label
)
s
lider
=
s
elf
.
__slider
=
RangeSlider
()
self
.
__slider
=
RangeSlider
()
leftEdit
=
self
.
__leftEdit
=
StyledLineEdit
(
nChar
=
7
)
leftEditValidator
=
Qt
.
QDoubleValidator
(
leftEdit
)
...
...
@@ -81,35 +86,43 @@ class RoiAxisWidget(Qt.QWidget):
rightEdit
.
editingFinished
.
connect
(
self
.
__rightEditingFinished
)
layout
.
addWidget
(
qLabel
,
0
,
0
)
layout
.
addWidget
(
slider
,
0
,
1
,
1
,
2
)
layout
.
addWidget
(
s
elf
.
__s
lider
,
0
,
1
,
1
,
2
)
layout
.
addWidget
(
leftEdit
,
1
,
1
)
layout
.
addWidget
(
rightEdit
,
1
,
2
)
layout
.
setColumnStretch
(
3
,
1
)
slider
.
sigSliderMoved
.
connect
(
self
.
__sliderMoved
)
slider
.
sigSliderMoved
.
connect
(
self
.
sigSliderMoved
)
self
.
__slider
.
sigValueChanged
.
connect
(
self
.
__sliderValueChanged
)
def
getSliderState
(
self
):
"""Returns current slider state
:rtype: RangeSliderState
"""
firstValue
,
secondValue
=
self
.
slider
().
getValues
()
firstPos
,
secondPos
=
self
.
slider
().
getPositions
()
state
=
RangeSliderState
(
left
=
firstValue
,
right
=
secondValue
,
leftIndex
=
firstPos
,
rightIndex
=
secondPos
)
return
state
def
__leftEditingFinished
(
self
):
"""Handle left line edit editing finished"""
self
.
__slider
.
setSliderValue
(
'left'
,
float
(
self
.
__leftEdit
.
text
()))
# leftEdit gets updated through sigSliderMoved
self
.
__slider
.
setFirstValue
(
float
(
self
.
__leftEdit
.
text
()))
def
__rightEditingFinished
(
self
):
"""Handle right line edit editing finished"""
self
.
__slider
.
setSliderValue
(
'right'
,
float
(
self
.
__rightEdit
.
text
()))
# rightEdit gets updated through sigSliderMoved
self
.
__slider
.
setSecondValue
(
float
(
self
.
__rightEdit
.
text
()))
def
__sliderMoved
(
self
,
event
):
"""
Slot triggered when one of the slider is moved. Updates the
line edits.
:param event:
:return:
"""
self
.
__leftEdit
.
setText
(
'{0:6g}'
.
format
(
event
.
left
))
self
.
__rightEdit
.
setText
(
'{0:6g}'
.
format
(
event
.
right
))
def
__sliderValueChanged
(
self
,
first
,
second
):
"""Slot triggered when one of the slider is moved.
Updates the line edits and emits sigSliderMoved.
if
__name__
==
'__main__'
:
pass
:param float first:
:param float second:
"""
self
.
__leftEdit
.
setText
(
'{0:6g}'
.
format
(
first
))
self
.
__rightEdit
.
setText
(
'{0:6g}'
.
format
(
second
))
self
.
sigSliderMoved
.
emit
(
self
.
getSliderState
())
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment