Вопрос скорее общий...
Код ниже работает, когда вставлен в процедуры класса 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()
{
}