Russian Qt Forum

Qt => Вопросы новичков => Тема начата: romanoff346 от Февраль 06, 2012, 13:39



Название: Снова сигналы и слоты
Отправлено: romanoff346 от Февраль 06, 2012, 13:39
Есть вот такая программа я пытаюсь на её основе создать построитель графиков:

Mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

mygraphicsview.h

#ifndef MYGRAPHICSVIEW_H
#define MYGRAPHICSVIEW_H

#include <QGraphicsView>


class MyGraphicsView : public QGraphicsView
{
    Q_OBJECT
public:
    explicit MyGraphicsView(QWidget *parent = 0);
    void paintEvent(QPaintEvent *event);

signals:

public slots:

    void calc();

};

#endif // MYGRAPHICSVIEW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mygraphicsview.h"

using namespace std;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connect(ui->pushButton, SIGNAL(clicked()),&MyGraphicsView,SLOT(calc()));
    
}

MainWindow::~MainWindow()
{
    delete ui;
}

MyGraphicsView.cpp

#include "mygraphicsview.h"
#include <QPainter>
#include <QDebug>

using namespace std;

MyGraphicsView::MyGraphicsView(QWidget *parent) :
    QGraphicsView(parent)
{

}



void MyGraphicsView::paintEvent(QPaintEvent *event)
{
    QPainter p(this->viewport());
    p.setPen(Qt::red);
    p.drawText(10,10,"some text jkldfhsoufhuwfhlasufirhauihrtguihi");

}

void MyGraphicsView::calc()
{
    int i=0;
}


Когда я пытаюсь связать сигнал нажатия на кнопку в главном окне и слот в майграфик вью, Qt выдаёт следующее:

H:\programming\graphic\PaintingTest\PaintingTest-build-desktop\..\PaintingTest\mainwindow.cpp:13: ошибка: expected primary-expression before ',' token

Каким образом я могу по сигналу из одного класса совершить действие в другом?


// Пользуйся тегом Код


Название: Re: Снова сигналы и слоты
Отправлено: mutineer от Февраль 06, 2012, 13:42
Где создание объекта MyGraphicsView ?


Название: Re: Снова сигналы и слоты
Отправлено: GreatSnake от Февраль 06, 2012, 13:47
Тебе же давали ссылку (http://www.prog.org.ru/index.php?topic=20841.msg142486#msg142486) насчёт QGraphicsView.
Не осилил что ли ???


Название: Re: Снова сигналы и слоты
Отправлено: romanoff346 от Февраль 06, 2012, 13:51
Хороший вопрос... Если не использовать коннект, то эта программа работает, и пишет в окошке текст, который указан в график вью....


Название: Re: Снова сигналы и слоты
Отправлено: mutineer от Февраль 06, 2012, 13:52
коннектить надо не к классу, а к объекту же


Название: Re: Снова сигналы и слоты
Отправлено: romanoff346 от Февраль 06, 2012, 13:53
осилил, но не понял..... ??? :(


Название: Re: Снова сигналы и слоты
Отправлено: romanoff346 от Февраль 06, 2012, 14:23
А с сигналами как? Я это пытался делать не только применительно к графике.


Название: Re: Снова сигналы и слоты
Отправлено: GreatSnake от Февраль 06, 2012, 14:55
А с сигналами как? Я это пытался делать не только применительно к графике.
А сигналы тут не причём. Проблема в незнании азов C++.