Название: рисование в graphicsView
Отправлено: genix от Октябрь 26, 2010, 20:27
Вопрос скорее общий... Код ниже работает, когда вставлен в процедуры класса MainWindow. QGraphicsScene * scene = new QGraphicsScene; ui->graphicsView->setScene(scene); QPen bp(QColor(0,0,0,255)); //bp.setStyle(Qt::DotLine); bp.setWidth(5); //scene->addLine(100,100,200,100,bp); но вот это не работает: void resist(int y) { QGraphicsScene * scene = new QGraphicsScene; MainWindow().ui->graphicsView->setScene(scene); QPen bp(QColor(0,0,0,255)); //bp.setStyle(Qt::DotLine); bp.setWidth(5); scene->addLine(100,y,200,y,bp);
} при public: Ui::MainWindow *ui; в заголовочном файле. Просто ничего не рисует. Вот весь код. #include "mainwindow.h" #include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->verticalSlider->setMinimum(0); ui->verticalSlider_2->setMinimum(0); ui->verticalSlider->setMaximum(100); ui->verticalSlider_2->setMaximum(100); ui->label->setText(""); ui->label_2->setText(""); ui->label_3->setText(""); }
MainWindow::~MainWindow() { delete ui; }
void resist(int y) { QGraphicsScene * scene = new QGraphicsScene; MainWindow().ui->graphicsView->setScene(scene); QPen bp(QColor(0,0,0,255)); //bp.setStyle(Qt::DotLine); bp.setWidth(5); scene->addLine(100,y,200,y,bp);
}
void MainWindow::on_pushButton_clicked() { resist(200); QGraphicsScene * scene = new QGraphicsScene; ui->graphicsView->setScene(scene); QPen bp(QColor(0,0,0,255)); //bp.setStyle(Qt::DotLine); bp.setWidth(5); //scene->addLine(100,100,200,100,bp); double one=ui->verticalSlider->value(); double two=ui->verticalSlider_2->value(); double res=0; if (ui->radioButton->isChecked()==true) { res = one + two; } if (ui->radioButton_2->isChecked()==true) { res = 1/one + 1/two; } QString sres = QString("Result: %1").arg(res); ui->label_3->setText(sres); }
void MainWindow::on_radioButton_clicked() {
}
Название: Re: рисование в graphicsView
Отправлено: alexman от Октябрь 26, 2010, 21:28
У вас объект класса MainWindow существует только до первой закрывающей скобки!
Название: Re: рисование в graphicsView
Отправлено: genix от Октябрь 26, 2010, 21:39
А как мне вывести рисование в функцию?
Название: Re: рисование в graphicsView
Отправлено: pethead от Октябрь 29, 2010, 06:27
мудреный код. посмотрите примеры из qt. я там все время ковыряюсь.
|