Форум программистов, компьютерный форум CyberForum.ru

Отображение линий на QPainter по данным из QTableWidget - C++ Qt

Восстановить пароль Регистрация
 
SimonR
18 / 18 / 7
Регистрация: 05.03.2016
Сообщений: 67
Завершенные тесты: 2
11.01.2017, 15:48     Отображение линий на QPainter по данным из QTableWidget #1
Есть два окна: первое окно - область для рисования, второе окно - таблица данных. В классе первого окна есть вектор точек, по которым рисуюються линии. Проблема состоит в том, что при считывании данных из таблицы в вектор - программа вылетает.
Не могу понять причины, прошу помощи.

Класс первого окна:
Кликните здесь для просмотра всего текста

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef WINDOW_H
#define WINDOW_H
 
#include <QDialog>
#include <QPaintEvent>
#include <QVector>
#include <QPainter>
 
#include "table.h"
 
class Table;
 
class Window : public QDialog
{
    Q_OBJECT
 
public:
    Window(QWidget *parent = 0);
    ~Window();
 
    QVector<QPointF> points;
    Table *table;
protected:
            virtual void paintEvent(QPaintEvent *ev);
};
 
#endif // WINDOW_H


Его методы:
Кликните здесь для просмотра всего текста

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "window.h"
 
Window::Window(QWidget *parent): QDialog(parent)
{
    table = new Table;
    table->show();
 
    QPoint temp;
    for(int i=0; i<10; i++)
    {
        temp.setX(i*30);
        temp.setY(i*40);
        points.push_front(temp);
    }
}
 
Window::~Window()
{
 
}
 
void Window::paintEvent(QPaintEvent *ev)
{
    QPainter painter(this);
 
    for(int i=0; i<9; i++)
        painter.drawLine(points[i], points[i+1]);
 
}


Класс второго окна:
Кликните здесь для просмотра всего текста

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef TABLE_H
#define TABLE_H
 
#include <QDialog>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QVBoxLayout>
#include <QPushButton>
 
#include "window.h"
 
class Window;
 
class Table : public QDialog
{
    Q_OBJECT
 
public:
    Table(QWidget *parent = 0);
    ~Table();
 
    QTableWidget *table;
    QPushButton *btn;
    Window *ptr;
 
private slots:
                void Slot();
};
 
 
#endif // TABLE_H


Его методы:
Кликните здесь для просмотра всего текста

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "table.h"
 
 
Table::Table(QWidget *parent) : QDialog(parent)
{
    table = new QTableWidget(10,2);
    QTableWidgetItem *item;
 
    for(int i=0; i<10; i++)
        for(int j=0; j<2; j++)
        {
            item = new QTableWidgetItem("1");
            table->setItem(i, j, item);
        }
 
    btn = new QPushButton("ok");
    connect(btn, SIGNAL(clicked(bool)), this, SLOT(Slot()));
 
    QVBoxLayout *lay = new QVBoxLayout;
    lay->addWidget(table);
    lay->addWidget(btn);
 
    this->setLayout(lay);
}
 
Table::~Table()
{
 
}
 
void Table::Slot()
{
    QPointF temp;
 
    for(int i=0; i<10; i++)
    {
        for(int j=0; j<2; j++)
        {
            temp.setX(table->item(i,j)->text().toInt());
            if(j) temp.setY(table->item(i,j)->text().toInt());
        }
 
        ptr->points.push_front(temp);
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2017, 15:48     Отображение линий на QPainter по данным из QTableWidget
Посмотрите здесь:

C++ Qt вопрос по QPainter
QPainter анимация C++ Qt
Qt в VS и отрисковка QPainter C++ Qt
C++ Qt Что лучше для рисования линий и кругов - QPainter или QGraphicsScene?
QPainter и скролбар C++ Qt
Рисование в QPainter C++ Qt
C++ Qt Ошибка с QPainter
C++ Qt QPainter не рисует
C++ Qt Не работает QPainter
QPainter на graphicsView C++ Qt
QTimer и QPainter C++ Qt
C++ Qt Не активно QPainter

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikhail1990
11 / 11 / 2
Регистрация: 22.03.2014
Сообщений: 177
12.01.2017, 12:05     Отображение линий на QPainter по данным из QTableWidget #2
Цитата Сообщение от SimonR Посмотреть сообщение
QVector<QPointF> points;
Цитата Сообщение от SimonR Посмотреть сообщение
QPoint temp;
* * for(int i=0; i<10; i++)
* * {
* * * * temp.setX(i*30);
* * * * temp.setY(i*40);
* * * * points.push_front(temp);
* * }
Вектор типа QPointF, а кладем QPoint
Yandex
Объявления
12.01.2017, 12:05     Отображение линий на QPainter по данным из QTableWidget
Ответ Создать тему
Опции темы

Текущее время: 15:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru