Russian Qt Forum
Ноябрь 24, 2024, 19:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Объявление глобальных переменных  (Прочитано 5290 раз)
Den2009
Гость
« : Сентябрь 14, 2010, 10:01 »

В главное окно программы вводятся координаты первой точки квадрата, далее происходит обработка. Как передать обработанные координаты объекту QPaintWidget?

код mainwindow.cpp:
Код:
#include <QtCore>
#include <QtGui>
#include "mainwindow.h"
#include "qpaintwidget.h"

void MainWindow::go()
{

int ox, oy, ox1, oy1;
QString sox, soy;
sox = spinBox -> text();
soy = spinBox_2 -> text();
ox = sox.toInt();
oy = soy.toInt();

//вычисляем координаты остальных вершин квадрата
ox1 = ox + 20;
oy1 = oy + 20;

QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
this->setWindowModality(Qt::NonModal);
QPaintWidget *wgt = new QPaintWidget();
wgt->setFixedSize(550, 550);
wgt->setWindowTitle(tr("Графическое отображение выполнения программы"));
wgt->show();
}

код qpaintwidget.cpp, сюда необходимо передать значения ox, oy, ox1, oy1 из MainWindow
Код:
#include "qpaintwidget.h"

#include <QPainter>

QPaintWidget::QPaintWidget(QWidget *parent) : QWidget(parent)
{
}

void QPaintWidget::paintEvent(QPaintEvent *)
{
    QPainter p(this); // Создаём новый объект рисовальщика
    p.setWindow(QRect(-250,-250,500,500));
    p.setPen(QPen(Qt::red,1,Qt::SolidLine)); // Настройки рисования

    QPolygonF polygon1;
    QPolygonF polygon2;
    //Рисуем координатную сетку
    polygon1 << QPointF(0,250) << QPointF(0,-250);
    polygon2 << QPointF(-250,0) << QPointF(250,0);
    p.drawPolygon(polygon1);
    p.drawPolygon(polygon2);
    for (int i = -250; i <= 250; i = i + 10)
    {
        QPolygonF polygon3;
        QPolygonF polygon4;
        polygon3 << QPointF(i, 0) << QPointF(i, 5);
        polygon4 << QPointF(0, i) << QPointF(5, i);
        p.drawPolygon(polygon3);
        p.drawPolygon(polygon4);
    }
    //рисуем первоначальный квадрат
    QPolygonF polygon;
    polygon << QPointF(ox, oy) << QPointF(ox1, oy) << QPointF(ox1, oy1) << QPointF(ox, oy1);
    p.setPen(QPen(Qt::black, 1, Qt::SolidLine));
    p.drawPolygon(polygon);
}
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Сентябрь 14, 2010, 10:06 »

сделать сеттер для координат Непонимающий
Записан
Den2009
Гость
« Ответ #2 : Сентябрь 14, 2010, 16:55 »

ну с графикой в QT я работаю недавно.. хотелось бы все-таки ответ по существу
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Сентябрь 14, 2010, 20:27 »

>>ну с графикой в QT я работаю недавно
а графика тут не причём.
сеттер (англ. setter) - функция-член класса, которая устанавливает его внутренние переменные в некое состояние

другими словами, добавь в свой класс функцию, с помощью которой ты сможешь передавать в него данные.
Записан

Юра.
Den2009
Гость
« Ответ #4 : Сентябрь 15, 2010, 07:46 »

спасибо, разобрался
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.242 секунд. Запросов: 23.