Qtを使用してXY軸を持つグラフに矩形を描きたいと思います。私はQCustomPlotウィジェットを見つけましたが、それは私が必要とするものではありません(または私の問題を解決するためにそれを適用する方法を理解していない)。 XY軸を持つグラフに矩形を描く方法Qt
それを動作させるためにどのように任意の提案をしてください?
Qtを使用してXY軸を持つグラフに矩形を描きたいと思います。私はQCustomPlotウィジェットを見つけましたが、それは私が必要とするものではありません(または私の問題を解決するためにそれを適用する方法を理解していない)。 XY軸を持つグラフに矩形を描く方法Qt
それを動作させるためにどのように任意の提案をしてください?
あなたがのQCPLayerにQCPItemRectを追加することによってそれを行うことができますQCustomPlot
。それは最も簡単な解決策のようです。
QWidgetの内、最も単純なオーバーライドpaintEvent:
void MyWidget::paintEvent(QPaintEvent * event)
{
Q_UNUSED(event);
QPainter painter(this);
painter.drawLine(0, 10, 100, 10);
painter.drawLine(10, 0, 10, 100);
painter.drawRect(20, 20, 30, 30);
}
あなたは単なるQWidget
を使用して、それがpaintEvent()
関数の再実装することができます。絵はQPainter
によって実現されます。
void CMyWidget::paintEvent(QPaintEvent* event)
{
QPainter p(this);
p.drawLine(...);
p.drawRect(...);
p.drawText(...);
}
それともQGraphicsView
/QGraphicsScene
フレームワークを使用することができます。これは、何が必要の例であるhttp://doc.qt.io/qt-4.8/graphicsview.html
を:
#include <QWidget>
#include <QPainter>
class MyPlot : public QWidget
{
Q_OBJECT
public:
MyPlot(QWidget *parent = 0)
: QWidget(parent)
{
}
protected:
void paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.save();
painter.translate(2, height() -2); // 2 pixels between axes and the windows frame
painter.scale(1,-1);
QPen pen;
pen.setWidth(2);
painter.setPen(pen);
// X Axis
painter.drawLine(0,0, width(),0);
// Y Axis
painter.drawLine(0,0, 0,height());
pen.setWidth(4);
painter.setPen(pen);
// Rect
painter.drawRect(10,10, 60,80);
painter.restore();
}
};
[回答](http://stackoverflow.com/questions/29444939/qcustomplot-show-item-on-qcpaxisrect-below-customplot)を入手したい場合は、 – Mikhail