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 矩形颜色的主要内容,如果未能解决你的问题,请参考以下文章