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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Рисование графа  (Прочитано 8401 раз)
voodoo
Гость
« : Апрель 18, 2012, 02:14 »

Доброе время суток!

Пишу диплом и появилась задача нарисовать граф. Из произвольной точки, по клику мыши, рисуется линия от этой точки к координатам курсора. В qtcreator выбираю главным классом QDialog, хочу кроме всего накидать ещё разных виджетов. Каким образом это всё реализовать?


Пытался методом тыка и гугления нарисовать хотя бы простую линию, но ничего не вышло Грустный
Код:
void Dialog::paintEvent()
{

    QPoint point1,point2;
    point1.setX(100);
    point1.setX(100);
    point2.setX(300);
    point2.setX(300);
    QPainter painter(this);
    QPen pen = painter.pen();
    pen.setColor(Qt::red);
    painter.setPen(pen);
    painter.drawLine(point1,point2);

}
Записан
Figaro
Гость
« Ответ #1 : Апрель 18, 2012, 04:52 »

Достаточно странная сигнатура...
Из ассистента:
void QWidget::paintEvent ( QPaintEvent * event ) [virtual protected]
Записан
Bepec
Гость
« Ответ #2 : Апрель 18, 2012, 06:56 »

vodoo - вы создали функцию void paintEvent().
А нужно было переопределить виртуальную функцию void paintEvent ( QPaintEvent * event ).

угум?
Записан
Figaro
Гость
« Ответ #3 : Апрель 18, 2012, 07:37 »

Ага.. сигнатуры то разные, и event не придет...

Что то типа такого:

Код:
void Dialog::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    .....
 }
Записан
Bepec
Гость
« Ответ #4 : Апрель 18, 2012, 07:43 »

Добавлю ещё 5 копеек - эту функцию нужно объявить как слот Подмигивающий
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #5 : Апрель 18, 2012, 08:15 »

Добавлю ещё 5 копеек - эту функцию нужно объявить как слот Подмигивающий

Зачем ? Улыбающийся Очень любопытно стало, всегда определяю ее либо как приватную либо как протектед, не разу не определял слотом, ибо вызвать ее из вне вроде как совсем не просто будет если вообще возможно будет передать нормальный QPaintEvent *.
Записан
Bepec
Гость
« Ответ #6 : Апрель 18, 2012, 08:37 »

Хм. *перекопал мозг, ушёл копать дальше, откуда ж я это взял*
Записан
iroln
Гость
« Ответ #7 : Апрель 19, 2012, 14:49 »

Для рисования графа лучше использовать QGraphicsScene. А ещё лучше сначала почитать книжку по Qt, большинство вопросов должны отпасть. Почитать книжку - это эффективнее чем ждать, пока тебе ответят на форуме в понятном для тебя виде. Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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