15 #include <QColorDialog> 23 setContentsMargins(1, 1, 1, 1);
33 QPainter painter(
this);
36 QRect contentsRect = this->contentsRect();
37 painter.setPen(Qt::gray);
38 painter.drawRect(0, 0, contentsRect.width() + 1, contentsRect.height() + 1);
40 if (!this->isEnabled())
45 for (
int x = contentsRect.x(); x < contentsRect.x() + contentsRect.width(); x++)
47 double xVal =
m_Min + ((float)x) / contentsRect.width() * (
m_Max -
m_Min);
52 painter.drawLine(x, 1, x, contentsRect.height());
59 painter.setPen(Qt::black);
60 painter.drawText(QPoint(11, 21),
m_Title);
61 painter.setPen(Qt::white);
62 painter.drawText(QPoint(10, 20),
m_Title);
66 QString qs_min = QString::number(
m_Min);
67 QString qs_max = QString::number(
m_Max);
69 QRect qr_min = painter.fontMetrics().boundingRect(qs_min);
70 QRect qr_max = painter.fontMetrics().boundingRect(qs_max);
74 y = this->contentsRect().height() - qr_min.height() + 5;
77 painter.setPen(Qt::black);
78 painter.drawText(QPoint(x + 1, y + 1), qs_min);
79 painter.setPen(Qt::white);
80 painter.drawText(QPoint(x, y), qs_min);
82 y = this->contentsRect().height() - qr_max.height() + 5;
83 x = this->contentsRect().width() - qr_max.width() - 6;
85 painter.setPen(Qt::black);
86 painter.drawText(QPoint(x, y + 1), qs_max);
87 painter.setPen(Qt::white);
88 painter.drawText(QPoint(x, y), qs_max);
93 painter.setBrush(Qt::black);
94 painter.setPen(Qt::black);
97 int handleHeight = (i ==
m_GrabbedHandle) ? (
int)(contentsRect.height() / 1.5) : contentsRect.height() / 2;
100 int y = height() / 2;
101 painter.drawRoundRect(point.first - handleWidth / 2, y - handleHeight / 2, handleWidth, handleHeight, 50, 50);
105 int xCursor =
m_XEdit->cursorPosition();
107 m_XEdit->setCursorPosition(xCursor);
118 if ((
unsigned int)((point.first - x) * (point.first - x)) < maxSquaredDistance)
132 QColor result = QColorDialog::getColor(col);
133 if (result.isValid())
135 m_ColorTransferFunction->AddRGBPoint(xVal, result.red() / 255.0, result.green() / 255.0, result.blue() / 255.0);
int GetNearHandle(int x, int y, unsigned int maxSquaredDistance=32) override
void RemoveFunctionPoint(double x) override
void SetTitle(const QString &title)
void MoveFunctionPoint(int index, std::pair< double, double > pos) override
double GetFunctionX(int index) override
void AddRGB(double x, double r, double g, double b)
static RenderingManager * GetInstance()
int GetFunctionSize() override
vtkColorTransferFunction * m_ColorTransferFunction
QmitkColorTransferFunctionCanvas(QWidget *parent=nullptr, Qt::WindowFlags f=nullptr)
void DoubleClickOnHandle(int handle) override
std::pair< int, int > FunctionToCanvas(std::pair< double, double >)
void RequestUpdateAll(RequestType type=REQUEST_UPDATE_ALL)
void paintEvent(QPaintEvent *e) override