QwtPlotZoomer 矩形颜色

Posted

技术标签:

【中文标题】QwtPlotZoomer 矩形颜色【英文标题】:QwtPlotZoomer Rectangle Color 【发布时间】:2018-07-19 04:28:46 【问题描述】:

有谁知道如何在 C++ 中更改 QwtPlotZoomer 对象的框和文本颜色?我的绘图画布背景是黑色的,拖动鼠标时绘制的框也是黑色的,很难看到缩放选择。

谢谢!

【问题讨论】:

【参考方案1】:

使用setRubberBandPen() 传递具有矩形边缘颜色的QPen()。

例子:

#include <QApplication>
#include <QMainWindow>

#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_plot_zoomer.h>


int main( int argc, char **argv )

    QApplication a( argc, argv );
    a.setStyleSheet("QwtPlotCanvas  background: black;  ");

    QwtPlot * plot = new QwtPlot();
    plot->setAxisAutoScale(QwtPlot::xBottom);
    plot->setAxisAutoScale(QwtPlot::yLeft);

    QwtPlotZoomer *zoomer;
    zoomer = new QwtPlotZoomer( QwtPlot::xBottom, QwtPlot::yLeft, plot->canvas() );
    zoomer->setRubberBandPen(QPen(Qt::white));

    // create data
    std::vector<double> x(100);
    std::vector<double> y1(x.size());

    for (size_t i = 0; i< x.size(); ++i)  x[i] = int(i)-50; 
    for (size_t i = 0; i< y1.size(); ++i) 
        y1[i] = i*i;
    

    // first curve
    QwtPlotCurve *curve = new QwtPlotCurve();
    curve->setPen(Qt::white);
    curve->setRawSamples(&x[0], &y1[0], x.size());
    curve->attach( plot );
    plot->replot();

    QMainWindow window;
    window.setCentralWidget(plot);
    window.resize(800, 600);
    window.show();

    return a.exec();

【讨论】:

以上是关于QwtPlotZoomer 矩形颜色的主要内容,如果未能解决你的问题,请参考以下文章

将 qwtPlotZoomer 选择限制为画布边界

photoshop画一个有颜色的矩形?

html5 canvas 画一个矩形,在矩形里添加文字。 文字颜色与矩形背景颜色有关问题?

MFC里面画矩形 ,怎么改变矩形边框颜色?

QT怎么指定画制出来的矩形的边框的颜色

Android 里canvas 绘制了两个矩形,交叉位置颜色重叠