Название: И снова рисование Отправлено: romanoff346 от Февраль 03, 2012, 13:43 Пытаюсь сделать рисование графика форма представляет собой следующее, QWidget кнопка и QFrame, который называется "graphicsView". Пытаюсь сделать так, чтобы по нажатию кнопки на фрейме что-нибудь отрисовывалось. Смотрел в бланшет и в форуме, все дружно рисуют на основном окне, а я хочу, чтоб отображение графика было в чётко ограниченной зоне.
заголовочник: #ifndef FROMCURVEWINDOW_H #define FROMCURVEWINDOW_H #include <QDialog> #include<QPixmap> #include<QPainter> #include "ui_FromCurve.h" class FromCurveWindow : public QDialog, public Ui::FromCurve { Q_OBJECT public: FromCurveWindow(QWidget *parent = 0); public slots: void draw_curve(); private: void refreshPixmap(); QPainter painter(); }; #endif // FROMCURVEWINDOW_H и собсно сипипи: #include <QtGui> #include<QGraphicsView> #include<QDialog> #include<QVector> #include"math.h" #include "FromCurveWindow.h" using namespace std; FromCurveWindow::FromCurveWindow(QWidget *parent) :QDialog(parent) { setupUi(this); graphicsView->installEventFilter(this); connect(acceptButton,SIGNAL(clicked()),this, SLOT(draw_curve())); } void FromCurveWindow::draw_curve() { QPainter painter(graphicsView); painter.begin(graphicsView); painter.setPen(Qt::black); painter.setFont(QFont("Arial", 100)); painter.drawText(rect(), Qt::AlignCenter, "Qt"); painter.end(); graphicsView->update(); } Этот код выдаёт следующее: QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::begin: Paint device returned engine == 0, type: 1 QPainter::setPen: Painter not active QPainter::setFont: Painter not active QPainter::end: Painter not active, aborted Девайс вроде как указан как graphicsView. Название: Re: И снова рисование Отправлено: GreatSnake от Февраль 03, 2012, 14:02 Во-первых, рисовать QPainter-ом на виджете позволительно только из QWidget::paintEvent().
Во-вторых, не мешало бы для начала прочитать Каркас Графического представления (http://www.doc.crossplatform.ru/qt/4.7.x/graphicsview.html), чтобы не заниматься рукоблудием. Название: Re: И снова рисование Отправлено: romanoff346 от Февраль 03, 2012, 14:06 Ушёл читать...
|