@@ -66,6 +66,14 MainWidget::MainWidget(QWidget *parent) : | |||||
66 | connect(bottomButton, SIGNAL(clicked()), this, SLOT(setLegendBottom())); |
|
66 | connect(bottomButton, SIGNAL(clicked()), this, SLOT(setLegendBottom())); | |
67 | m_buttonLayout->addWidget(bottomButton, 7, 0); |
|
67 | m_buttonLayout->addWidget(bottomButton, 7, 0); | |
68 |
|
68 | |||
|
69 | QPushButton *boldButton = new QPushButton("Toggle bold"); | |||
|
70 | connect(boldButton, SIGNAL(clicked()), this, SLOT(toggleBold())); | |||
|
71 | m_buttonLayout->addWidget(boldButton, 8, 0); | |||
|
72 | ||||
|
73 | QPushButton *italicButton = new QPushButton("Toggle italic"); | |||
|
74 | connect(italicButton, SIGNAL(clicked()), this, SLOT(toggleItalic())); | |||
|
75 | m_buttonLayout->addWidget(italicButton, 9, 0); | |||
|
76 | ||||
69 | m_legendPosX = new QDoubleSpinBox(); |
|
77 | m_legendPosX = new QDoubleSpinBox(); | |
70 | m_legendPosY = new QDoubleSpinBox(); |
|
78 | m_legendPosY = new QDoubleSpinBox(); | |
71 | m_legendWidth = new QDoubleSpinBox(); |
|
79 | m_legendWidth = new QDoubleSpinBox(); | |
@@ -90,9 +98,18 MainWidget::MainWidget(QWidget *parent) : | |||||
90 | m_chart = new QChart(); |
|
98 | m_chart = new QChart(); | |
91 | m_chartView = new QChartView(m_chart, this); |
|
99 | m_chartView = new QChartView(m_chart, this); | |
92 |
|
100 | |||
|
101 | // Create spinbox to modify font size | |||
|
102 | m_fontSize = new QDoubleSpinBox(); | |||
|
103 | m_fontSize->setValue(m_chart->legend()->font().pointSizeF()); | |||
|
104 | connect(m_fontSize, SIGNAL(valueChanged(double)), this, SLOT(fontSizeChanged())); | |||
|
105 | ||||
|
106 | QFormLayout* fontLayout = new QFormLayout(); | |||
|
107 | fontLayout->addRow("Legend font size", m_fontSize); | |||
|
108 | ||||
93 | // Create layout for grid and detached legend |
|
109 | // Create layout for grid and detached legend | |
94 | m_mainLayout = new QGridLayout(); |
|
110 | m_mainLayout = new QGridLayout(); | |
95 | m_mainLayout->addLayout(m_buttonLayout, 0, 0); |
|
111 | m_mainLayout->addLayout(m_buttonLayout, 0, 0); | |
|
112 | m_mainLayout->addLayout(fontLayout,1,0); | |||
96 | m_mainLayout->addWidget(m_chartView, 0, 1, 3, 1); |
|
113 | m_mainLayout->addWidget(m_chartView, 0, 1, 3, 1); | |
97 | setLayout(m_mainLayout); |
|
114 | setLayout(m_mainLayout); | |
98 |
|
115 | |||
@@ -212,6 +229,27 void MainWidget::setLegendBottom() | |||||
212 | m_chart->legend()->setAlignment(Qt::AlignBottom); |
|
229 | m_chart->legend()->setAlignment(Qt::AlignBottom); | |
213 | } |
|
230 | } | |
214 |
|
231 | |||
|
232 | void MainWidget::toggleBold() | |||
|
233 | { | |||
|
234 | QFont font = m_chart->legend()->font(); | |||
|
235 | font.setBold(!font.bold()); | |||
|
236 | m_chart->legend()->setFont(font); | |||
|
237 | } | |||
|
238 | ||||
|
239 | void MainWidget::toggleItalic() | |||
|
240 | { | |||
|
241 | QFont font = m_chart->legend()->font(); | |||
|
242 | font.setItalic(!font.italic()); | |||
|
243 | m_chart->legend()->setFont(font); | |||
|
244 | } | |||
|
245 | ||||
|
246 | void MainWidget::fontSizeChanged() | |||
|
247 | { | |||
|
248 | QFont font = m_chart->legend()->font(); | |||
|
249 | font.setPointSizeF(m_fontSize->value()); | |||
|
250 | m_chart->legend()->setFont(font); | |||
|
251 | } | |||
|
252 | ||||
215 | void MainWidget::updateLegendLayout() |
|
253 | void MainWidget::updateLegendLayout() | |
216 | { |
|
254 | { | |
217 | //![4] |
|
255 | //![4] |
@@ -56,8 +56,13 public slots: | |||||
56 | void setLegendTop(); |
|
56 | void setLegendTop(); | |
57 | void setLegendBottom(); |
|
57 | void setLegendBottom(); | |
58 |
|
58 | |||
|
59 | void toggleBold(); | |||
|
60 | void toggleItalic(); | |||
|
61 | void fontSizeChanged(); | |||
|
62 | ||||
59 | void updateLegendLayout(); |
|
63 | void updateLegendLayout(); | |
60 |
|
64 | |||
|
65 | ||||
61 | private: |
|
66 | private: | |
62 |
|
67 | |||
63 | QChart *m_chart; |
|
68 | QChart *m_chart; | |
@@ -66,6 +71,9 private: | |||||
66 | QChartView *m_chartView; |
|
71 | QChartView *m_chartView; | |
67 | QGridLayout *m_mainLayout; |
|
72 | QGridLayout *m_mainLayout; | |
68 | QGridLayout *m_buttonLayout; |
|
73 | QGridLayout *m_buttonLayout; | |
|
74 | QGridLayout *m_fontLayout; | |||
|
75 | ||||
|
76 | QDoubleSpinBox *m_fontSize; | |||
69 |
|
77 | |||
70 | // For detached layout |
|
78 | // For detached layout | |
71 | QGroupBox* m_legendSettings; |
|
79 | QGroupBox* m_legendSettings; |
@@ -71,6 +71,17 QBrush LegendMarker::brush() const | |||||
71 | return m_rectItem->brush(); |
|
71 | return m_rectItem->brush(); | |
72 | } |
|
72 | } | |
73 |
|
73 | |||
|
74 | void LegendMarker::setFont(const QFont &font) | |||
|
75 | { | |||
|
76 | m_textItem->setFont(font); | |||
|
77 | updateLayout(); | |||
|
78 | } | |||
|
79 | ||||
|
80 | QFont LegendMarker::font() const | |||
|
81 | { | |||
|
82 | return m_textItem->font(); | |||
|
83 | } | |||
|
84 | ||||
74 | void LegendMarker::setLabel(const QString label) |
|
85 | void LegendMarker::setLabel(const QString label) | |
75 | { |
|
86 | { | |
76 | m_textItem->setText(label); |
|
87 | m_textItem->setText(label); |
@@ -59,6 +59,9 public: | |||||
59 | void setBrush(const QBrush &brush); |
|
59 | void setBrush(const QBrush &brush); | |
60 | QBrush brush() const; |
|
60 | QBrush brush() const; | |
61 |
|
61 | |||
|
62 | void setFont(const QFont &font); | |||
|
63 | QFont font() const; | |||
|
64 | ||||
62 | void setSize(const QSize& size); |
|
65 | void setSize(const QSize& size); | |
63 |
|
66 | |||
64 | void setLabel(const QString label); |
|
67 | void setLabel(const QString label); |
@@ -121,6 +121,15 QTCOMMERCIALCHART_BEGIN_NAMESPACE | |||||
121 | */ |
|
121 | */ | |
122 |
|
122 | |||
123 | /*! |
|
123 | /*! | |
|
124 | \property QLegend::font | |||
|
125 | The font of markers used by legend | |||
|
126 | */ | |||
|
127 | /*! | |||
|
128 | \qmlproperty color Legend::font | |||
|
129 | The font of markers used by legend | |||
|
130 | */ | |||
|
131 | ||||
|
132 | /*! | |||
124 | \fn void QLegend::backgroundVisibleChanged(bool) |
|
133 | \fn void QLegend::backgroundVisibleChanged(bool) | |
125 | The visibility of the legend background changed to \a visible. |
|
134 | The visibility of the legend background changed to \a visible. | |
126 | */ |
|
135 | */ | |
@@ -136,6 +145,11 QTCOMMERCIALCHART_BEGIN_NAMESPACE | |||||
136 | */ |
|
145 | */ | |
137 |
|
146 | |||
138 | /*! |
|
147 | /*! | |
|
148 | \fn void QLegend::fontChanged(QFont) | |||
|
149 | The font of markers of the legend changed to \a font. | |||
|
150 | */ | |||
|
151 | ||||
|
152 | /*! | |||
139 | \fn qreal QLegend::minWidth() const |
|
153 | \fn qreal QLegend::minWidth() const | |
140 | Returns minimum width of the legend |
|
154 | Returns minimum width of the legend | |
141 | */ |
|
155 | */ | |
@@ -259,6 +273,19 QColor QLegend::borderColor() | |||||
259 | return d_ptr->m_pen.color(); |
|
273 | return d_ptr->m_pen.color(); | |
260 | } |
|
274 | } | |
261 |
|
275 | |||
|
276 | void QLegend::setFont(const QFont &font) | |||
|
277 | { | |||
|
278 | if (d_ptr->m_font != font) { | |||
|
279 | d_ptr->setFont(font); | |||
|
280 | emit fontChanged(font); | |||
|
281 | } | |||
|
282 | } | |||
|
283 | ||||
|
284 | QFont QLegend::font() const | |||
|
285 | { | |||
|
286 | return d_ptr->m_font; | |||
|
287 | } | |||
|
288 | ||||
262 | void QLegend::setAlignment(Qt::Alignment alignment) |
|
289 | void QLegend::setAlignment(Qt::Alignment alignment) | |
263 | { |
|
290 | { | |
264 | if(d_ptr->m_alignment!=alignment) { |
|
291 | if(d_ptr->m_alignment!=alignment) { | |
@@ -680,13 +707,27 int QLegendPrivate::roundness(qreal size) | |||||
680 | return 100*m_diameter/int(size); |
|
707 | return 100*m_diameter/int(size); | |
681 | } |
|
708 | } | |
682 |
|
709 | |||
|
710 | void QLegendPrivate::setFont(const QFont &font) | |||
|
711 | { | |||
|
712 | m_font = font; | |||
|
713 | QList<QGraphicsItem *> items = m_markers->childItems(); | |||
|
714 | ||||
|
715 | foreach (QGraphicsItem *markers, items) { | |||
|
716 | LegendMarker *marker = static_cast<LegendMarker*>(markers); | |||
|
717 | marker->setFont(m_font); | |||
|
718 | } | |||
|
719 | updateLayout(); | |||
|
720 | } | |||
|
721 | ||||
683 | void QLegendPrivate::handleSeriesAdded(QAbstractSeries *series, Domain *domain) |
|
722 | void QLegendPrivate::handleSeriesAdded(QAbstractSeries *series, Domain *domain) | |
684 | { |
|
723 | { | |
685 | Q_UNUSED(domain) |
|
724 | Q_UNUSED(domain) | |
686 |
|
725 | |||
687 | QList<LegendMarker*> markers = series->d_ptr->createLegendMarker(q_ptr); |
|
726 | QList<LegendMarker*> markers = series->d_ptr->createLegendMarker(q_ptr); | |
688 | foreach(LegendMarker* marker, markers) |
|
727 | foreach(LegendMarker* marker, markers) { | |
|
728 | marker->setFont(m_font); | |||
689 | m_markers->addToGroup(marker); |
|
729 | m_markers->addToGroup(marker); | |
|
730 | } | |||
690 |
|
731 | |||
691 | QObject::connect(series, SIGNAL(visibleChanged()), this, SLOT(handleSeriesVisibleChanged())); |
|
732 | QObject::connect(series, SIGNAL(visibleChanged()), this, SLOT(handleSeriesVisibleChanged())); | |
692 |
|
733 |
@@ -47,6 +47,7 class QTCOMMERCIALCHART_EXPORT QLegend : public QGraphicsWidget | |||||
47 | Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible NOTIFY backgroundVisibleChanged) |
|
47 | Q_PROPERTY(bool backgroundVisible READ isBackgroundVisible WRITE setBackgroundVisible NOTIFY backgroundVisibleChanged) | |
48 | Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) |
|
48 | Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) | |
49 | Q_PROPERTY(QColor borderColor READ borderColor WRITE setBorderColor NOTIFY borderColorChanged) |
|
49 | Q_PROPERTY(QColor borderColor READ borderColor WRITE setBorderColor NOTIFY borderColorChanged) | |
|
50 | Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) | |||
50 |
|
51 | |||
51 | private: |
|
52 | private: | |
52 | explicit QLegend(QChart *chart); |
|
53 | explicit QLegend(QChart *chart); | |
@@ -67,6 +68,9 public: | |||||
67 | void setBorderColor(QColor color); |
|
68 | void setBorderColor(QColor color); | |
68 | QColor borderColor(); |
|
69 | QColor borderColor(); | |
69 |
|
70 | |||
|
71 | void setFont(const QFont &font); | |||
|
72 | QFont font() const; | |||
|
73 | ||||
70 | void setAlignment(Qt::Alignment alignment); |
|
74 | void setAlignment(Qt::Alignment alignment); | |
71 | Qt::Alignment alignment() const; |
|
75 | Qt::Alignment alignment() const; | |
72 |
|
76 | |||
@@ -89,6 +93,7 Q_SIGNALS: | |||||
89 | void backgroundVisibleChanged(bool visible); |
|
93 | void backgroundVisibleChanged(bool visible); | |
90 | void colorChanged(QColor color); |
|
94 | void colorChanged(QColor color); | |
91 | void borderColorChanged(QColor color); |
|
95 | void borderColorChanged(QColor color); | |
|
96 | void fontChanged(QFont font); | |||
92 |
|
97 | |||
93 | private: |
|
98 | private: | |
94 | QScopedPointer<QLegendPrivate> d_ptr; |
|
99 | QScopedPointer<QLegendPrivate> d_ptr; |
@@ -51,6 +51,7 public: | |||||
51 | void updateDetachedLayout(); |
|
51 | void updateDetachedLayout(); | |
52 | void attachToChart(); |
|
52 | void attachToChart(); | |
53 | int roundness(qreal size); |
|
53 | int roundness(qreal size); | |
|
54 | void setFont(const QFont &font); | |||
54 |
|
55 | |||
55 | public Q_SLOTS: |
|
56 | public Q_SLOTS: | |
56 | void handleSeriesAdded(QAbstractSeries *series, Domain *domain); |
|
57 | void handleSeriesAdded(QAbstractSeries *series, Domain *domain); | |
@@ -67,6 +68,7 private: | |||||
67 | Qt::Alignment m_alignment; |
|
68 | Qt::Alignment m_alignment; | |
68 | QBrush m_brush; |
|
69 | QBrush m_brush; | |
69 | QPen m_pen; |
|
70 | QPen m_pen; | |
|
71 | QFont m_font; | |||
70 | QRectF m_rect; |
|
72 | QRectF m_rect; | |
71 | qreal m_offsetX; |
|
73 | qreal m_offsetX; | |
72 | qreal m_offsetY; |
|
74 | qreal m_offsetY; |
General Comments 0
You need to be logged in to leave comments.
Login now