Krita Source Code Documentation
Loading...
Searching...
No Matches
slider_line.py
Go to the documentation of this file.
1
'''
2
SPDX-FileCopyrightText: 2019 Tusooa Zhu <tusooa@vista.aero>
3
4
This file is part of Krita-docker-color-slider.
5
6
SPDX-License-Identifier: GPL-3.0-or-later
7
'''
8
try
:
9
from
PyQt6.QtWidgets
import
QHBoxLayout, QWidget
10
from
PyQt6.QtGui
import
QPixmap, QPainter
11
from
PyQt6.QtCore
import
pyqtSlot, pyqtSignal
12
except
:
13
from
PyQt5.QtWidgets
import
QHBoxLayout, QWidget
14
from
PyQt5.QtGui
import
QPixmap, QPainter
15
from
PyQt5.Qt
import
pyqtSlot, pyqtSignal
16
17
from
.color_slider
import
ColorSlider
18
19
20
class
SliderBtn
(QWidget):
21
clicked = pyqtSignal()
22
23
def
__init__
(self, parent=None):
24
super(SliderBtn, self).
__init__
(parent)
25
26
def
set_color
(self, qcolor):
27
self.
color
= qcolor
28
self.update()
29
30
def
update_color
(self):
31
color_sq = QPixmap(self.width(), self.height())
32
color_sq.fill(self.
color
)
33
image = color_sq.toImage()
34
35
painter = QPainter(self)
36
painter.drawImage(0, 0, image)
37
38
def
paintEvent
(self, event):
39
self.
update_color
()
40
41
def
mouseReleaseEvent
(self, event):
42
self.
clicked
.emit()
43
44
45
class
SliderLine
(QWidget):
46
def
__init__
(self, left_color, right_color, docker, parent=None):
47
super(SliderLine, self).
__init__
(parent)
48
self.
left_button
=
SliderBtn
()
49
self.
right_button
=
SliderBtn
()
50
self.
docker
= docker
51
self.
color_slider
=
ColorSlider
(docker)
52
self.
layout
= QHBoxLayout()
53
self.
layout
.setContentsMargins(2, 2, 2, 2)
54
self.setLayout(self.
layout
)
55
self.
layout
.addWidget(self.
left_button
)
56
self.
layout
.addWidget(self.
color_slider
)
57
self.
layout
.addWidget(self.
right_button
)
58
self.
left_button
.clicked.connect(self.
slot_update_left_color
slot_update_left_color
)
59
self.
right_button
.clicked.connect(self.
slot_update_right_color
slot_update_right_color
)
60
self.
set_color
(
'left'
, left_color)
61
self.
set_color
(
'right'
, right_color)
62
self.
left_button
.setMinimumSize(30, 30)
63
self.
left_button
.setMaximumSize(30, 30)
64
self.
right_button
.setMinimumSize(30, 30)
65
self.
right_button
.setMaximumSize(30, 30)
66
self.
color_slider
.setMaximumHeight(30)
67
68
def
set_color
(self, pos, color):
69
button_to_set =
None
70
if
pos ==
'left'
:
71
self.
left
= color
72
button_to_set = self.
left_button
73
else
:
74
self.
right
= color
75
button_to_set = self.
right_button
76
77
self.
color_slider
.
set_color
(pos, color)
78
79
button_to_set.set_color(self.
docker
.managedcolor_to_qcolor(color))
80
81
@pyqtSlot()
82
def
slot_update_left_color
(self):
83
if
self.
docker
.canvas()
is
not
None
:
84
if
self.
docker
.canvas().view()
is
not
None
:
85
self.
set_color
(
'left'
, self.
docker
.canvas().view().foregroundColor())
86
self.
color_slider
.value_x = 0
# set the cursor to the left-most
87
self.
color_slider
.update()
88
self.
docker
.write_settings()
89
90
@pyqtSlot()
91
def
slot_update_right_color
(self):
92
if
self.
docker
.canvas()
is
not
None
:
93
if
self.
docker
.canvas().view()
is
not
None
:
94
self.
set_color
(
'right'
, self.
docker
.canvas().view().foregroundColor())
95
self.
color_slider
.value_x = self.
color_slider
.width() - 1
96
self.
color_slider
.update()
97
self.
docker
.write_settings()
mixer_slider_docker.color_slider.ColorSlider
Definition
color_slider.py:19
mixer_slider_docker.slider_line.SliderBtn
Definition
slider_line.py:20
mixer_slider_docker.slider_line.SliderBtn.paintEvent
paintEvent(self, event)
Definition
slider_line.py:38
mixer_slider_docker.slider_line.SliderBtn.update_color
update_color(self)
Definition
slider_line.py:30
mixer_slider_docker.slider_line.SliderBtn.mouseReleaseEvent
mouseReleaseEvent(self, event)
Definition
slider_line.py:41
mixer_slider_docker.slider_line.SliderBtn.set_color
set_color(self, qcolor)
Definition
slider_line.py:26
mixer_slider_docker.slider_line.SliderBtn.clicked
clicked
Definition
slider_line.py:21
mixer_slider_docker.slider_line.SliderBtn.__init__
__init__(self, parent=None)
Definition
slider_line.py:23
mixer_slider_docker.slider_line.SliderBtn.color
color
Definition
slider_line.py:27
mixer_slider_docker.slider_line.SliderLine
Definition
slider_line.py:45
mixer_slider_docker.slider_line.SliderLine.slot_update_left_color
slot_update_left_color(self)
Definition
slider_line.py:82
mixer_slider_docker.slider_line.SliderLine.slot_update_right_color
slot_update_right_color(self)
Definition
slider_line.py:91
mixer_slider_docker.slider_line.SliderLine.set_color
set_color(self, pos, color)
Definition
slider_line.py:68
mixer_slider_docker.slider_line.SliderLine.__init__
__init__(self, left_color, right_color, docker, parent=None)
Definition
slider_line.py:46
mixer_slider_docker.slider_line.SliderLine.layout
layout
Definition
slider_line.py:52
mixer_slider_docker.slider_line.SliderLine.color_slider
color_slider
Definition
slider_line.py:51
mixer_slider_docker.slider_line.SliderLine.right
right
Definition
slider_line.py:74
mixer_slider_docker.slider_line.SliderLine.slot_update_left_color
slot_update_left_color
Definition
slider_line.py:58
mixer_slider_docker.slider_line.SliderLine.right_button
right_button
Definition
slider_line.py:49
mixer_slider_docker.slider_line.SliderLine.left
left
Definition
slider_line.py:71
mixer_slider_docker.slider_line.SliderLine.docker
docker
Definition
slider_line.py:50
mixer_slider_docker.slider_line.SliderLine.slot_update_right_color
slot_update_right_color
Definition
slider_line.py:59
mixer_slider_docker.slider_line.SliderLine.left_button
left_button
Definition
slider_line.py:48
QtGui
QtWidgets
QtCore
QtGui
QtWidgets
plugins
python
mixer_slider_docker
slider_line.py
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52