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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Нарисовать линию из точек  (Прочитано 2800 раз)
libertas
Гость
« : Март 25, 2014, 13:45 »

Здравствуйте, помогите пожалуйста разобраться как в MainWindow нарисовать линию из точек определенного цвета.
Я знаю есть метод paintEvent() и класс QPainter, но как их связать и нарисовать, я не понимаю..(

Спасибо.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Март 25, 2014, 14:48 »

Что то типо такого Улыбающийся
Код:
class MainWindow : public QMainWindow
{
...

protected:
   void paintEvent( QPaintEvent *event )
   {
        QPainter painter( this );
        for ( int i = 20; i < 10; i++ )
             painter.drawPoint( QPoint( i, 20 ) );
   }
};
Записан

libertas
Гость
« Ответ #2 : Март 25, 2014, 15:40 »

Спасибо большое. Стало понятно.
А еще не подскажете, я создал класс MainWindow в qt creatore и у меня в mainwindow.h такая запись:

Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#endif // MAINWINDOW_H


а в самом объявлении класса:

Код:
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
...

Так вот, что значат define и Q_OBJECT?

Записан
vizir.vs
Гость
« Ответ #3 : Март 25, 2014, 16:15 »

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#endif // MAINWINDOW_H

Это называется стражи включения, они не позволяют дважды включать один и тот же файл, во избежании мультиопределения. http://ru.wikipedia.org/wiki/Include_guard

Про Q_OBJECT хорошо ответили здесь http://stackoverflow.com/questions/1368584/qt-question-what-does-the-q-object-macro-do-why-do-all-qt-objects-need-this-ma
Например Q_OBJECT позволяет объявлять сигналы/слоты.
« Последнее редактирование: Март 25, 2014, 16:17 от vizir.vs » Записан
libertas
Гость
« Ответ #4 : Март 25, 2014, 16:26 »

Код:
Это называется стражи включения, они не позволяют дважды включать один и тот же файл, во избежании мультиопределения.

Спасибо, но не очень понял.
Наш хедер включается в cpp файл как:

include "mainwindow.h"

Допустим подключаем ещё:
include "test.h"?, который в свою очередь тоже содержит "mainwindow.h"
и как директива препроцессору сработает?
Записан
libertas
Гость
« Ответ #5 : Март 25, 2014, 18:10 »

Код:
Это называется стражи включения, они не позволяют дважды включать один и тот же файл, во избежании мультиопределения. http://ru.wikipedia.org/wiki/Include_guard

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


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