25 #include <QPaintEvent> 38 :QWidget(parent), m_low(0), m_high(100), m_logmode(false),
82 bool reverse,
const QString &text)
85 font.setStyleHint(QFont::SansSerif);
86 font.setFixedPitch(
true);
89 font.setStyle(QFont::StyleNormal);
91 QFontMetrics fm(font);
98 QRect
rect = fm.boundingRect(text);
99 const int th = rect.height();
100 const int tw = rect.width();
101 p.drawText(x, y, tw, th,
102 ((reverse) ? Qt::AlignLeft : Qt::AlignRight) | Qt::AlignBottom,
113 int dir = (inverse) ? -1 : +1;
115 p.setPen(palette().dark().color());
116 p.drawLine (0, dir*(h-1), dir*w, dir*(h-1));
117 p.drawLine (dir*(w-1), 0, dir*(w-1), dir*(h-1));
119 p.setPen(palette().text().color());
124 Q_ASSERT(
m_low >= 0);
129 int decades = qAbs(dec_hi - dec_lo) + 1;
134 static_cast<double>(w1) * log(base-1)/log(base))) > 1;
137 for (a = 0; a < decades; ++a) {
140 p.drawLine (dir * x, dir * 1, dir * x, dir * (h2 - 2));
145 for (
int i = 1; i < base; i++) {
148 p.drawLine (dir * x1, dir * 1, dir * x1, dir * ((h2 / 2) - 2));
154 for (a = 0; a < decades; ++a) {
155 QString buf =
_(
"%1 %2");
158 x = ((w - 1) * a) / decades;
166 int dir = (inverse) ? -1 : +1;
168 p.setPen(palette().dark().color());
169 p.drawLine(0, dir * (h - 1), dir * w, dir * (h - 1));
170 p.drawLine(dir * (w - 1), 0, dir * (w - 1), dir * (h - 1));
172 p.setPen(palette().text().color());
180 while ((t / 10 > 1) && (h2 > 0)) {
181 for (ofs = 0; ofs < w - 1; ofs += t) {
182 for (a = 0; a < 4; ++a) {
184 p.drawLine (dir * x, dir * 1, dir * x, dir * (h2 - 2));
192 for (a = 0; a < 4; ++a) {
193 QString buf =
_(
"%1 %2");
196 x = ((w - 1) * a) / 4;
205 bool inverse =
false;
212 p.setPen(palette().light().color());
214 p.drawLine(0, 0, w, 0);
216 p.setWindow(-w, 0, w, h);
static double rect(double param)