Функция
Затем мы создаем
199 void Plotter::drawGrid(QPainter *painter)
200 {
201 QRect rect(Margin, Margin,
202 width - 2 * Margin, height - 2 * Margin);
203 if (!rect.isValid)
204 return;
205 PlotSettings settings = zoomStack[curZoom];
206 QPen quiteDark = palette.dark.color.light;
207 QPen light = palette.light.color;
208 for (int i = 0; i <= settings.numXTicks; ++i) {
209 int x = rect.left + (i * (rect.width - 1)
210 / settings.numXTicks);
211 double label = settings.minX + (i * settings.spanX
212 / settings.numXTicks);
213 painter->setPen(quiteDark);
214 painter->drawLine(x, rect.top, x, rect.bottom);
215 painter->setPen(light);
216 painter->drawLine(x, rect.bottom, x, rect.bottom + 5);
217 painter->drawText(x - 50, rect.bottom + 5, 100, 15,
218 Qt::AlignHCenter | Qt::AlignTop,
219 QString::number(label));
220 }
221 for (int j = 0; j <= settings.numVTicks; ++j) {
222 int y = rect.bottom - (j * (rect.height - 1)
223 / settings.numYTicks);
224 double label = settings.minY + (j * settings.spanY
225 / settings.numYTicks);
226 painter->setPen(quiteDark);
227 painter->drawLine(rect.left, у, rect.right, у);
228 painter->setPen(light);
229 painter->drawLine(rect.left - 5, y, rect.left, у);
230 painter->drawText(rect.left - Margin, у - 10, Margin - 5, 20,
231 Qt::AlignRight | Qt::AlignVCenter,
232 QString::number(label));
233 }
234 painter->drawRect(rect.adjusted(0, 0, -1, -1));
235 }
Функция
Первый цикл
Вызовы функции
painter.drawText(