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

Qt

Войти
Регистрация
Восстановить пароль
 
SimonR
18 / 18 / 7
Регистрация: 05.03.2016
Сообщений: 67
Завершенные тесты: 2
#1

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

11.01.2017, 15:48. Просмотров 177. Ответов 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 или QGraphicsScene? - C++ Qt
Вот реально, что удобней и производительней? Слышал, что QGraphicsScene может быстро рисовать тонну фигур простых и может их позиции что...

Отображение линий на графике - C# WPF
Всем привет! Есть две линии line1 и line2 с одинаковыми координатами. Сначала рисуется line1, потом line2. Получается что line1 не будет...

Отображение линий на графике - C#
Всем привет! Есть две линии line1 и line2 с одинаковыми координатами. Сначала рисуется line1, потом line2. Получается что line1 не будет...

Неверное отображение типов линий в разных версиях атокада - AutoCAD
Есть проблема, судя по всему связанная с разным восприятием разными версиями автокада пользовательских типов линий. В общем сделали...

Отображение вертикальных линий, соединяющих фигурные скобки в редакторе кода - Visual Studio
В VS 2013 в C# можно то ли включить, то ли установить плагин, чтобы отображались вертикальные линии, соединяющие фигурные скобки одного...

Отображение диаграммы по данным DataTable C# - C#
Всем доброго времени суток, столкнулся с такой проблемой: необходимо вывести диаграмму по данным бд Acces, данные загрузил в dataTable и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mikhail1990
16 / 16 / 3
Регистрация: 22.03.2014
Сообщений: 208
12.01.2017, 12:05 #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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2017, 12:05
Привет! Вот еще темы с ответами:

Настроить отображение значений в привязанному к данным ComboBox - Visual Basic .NET
Здравствуйте. У меня есть с combobox с кодом фильма. Для того чтобы в нем не отображались цифры,я решил добавить в качестве отображения...

QTableWidget (1) >>> QTableWidget (2) исключить повторяющиеся строки - Python
Добрый день. Подскажите как лучше реализовать... Хочу реализовать исключение повторяющихся строк. Допустим из первого QTableWidget...

Вывод на экран случайных эллипсов, линий, треугольников, прямоугольков, ромбов, линий, пикселей - Pascal ABC
вывод на экран случайных эллипсов, линий, треугольников, прямоугольков, ромбов, линий, пикселей и т.д

Приведите к каноническому виду уравнения линий второго порядка, установите тип этих линий и их расположение - Геометрия
приведите к каноническому виду уравнения линий второго порядка/ установите тип этих линий и их расположение. сделать схематический чертеж ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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