Как рисовать в QT? |
Здравствуйте, гость ( Вход | Регистрация )
Как рисовать в QT? |
PVGDRK |
2.11.2010, 11:58
Сообщение
#1
|
Студент Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не могу понять с чего начать....
QT интегрирована в VisualStudio ,,, Выбираю QT Application появляется форма ,,, как на ней что нибудь нарисовать? Круг напрмер или точку? Во вкладке Project есть Add QtModule выбираю там OpenGL Library и ничего не добавляется может я не так все поняла? |
|
|
igor_bogomolov |
2.11.2010, 12:20
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
почитайте для начала вот это
http://doc.crossplatform.ru/qt/4.6.x/qt4-arthur.html и посмотрите примеры из стандартной поставки Qt |
|
|
PVGDRK |
8.11.2010, 11:04
Сообщение
#3
|
Студент Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: 0 |
Буду признательна, если все же поможете понять полному чайнику что и где писать,,,,
Посмотрела примеры из стандартной поставки Qt создала новый проект в VisualStudio -> Qt Console Application Скопировала полностью код из примера,,, все скомпилировалось но при запуске ругается, что не может создать виджет... Может нужно какой то другой проет выбрать не консольный? Мне в конечном итоге нужно изобразить точки, которые можно было бы перемещать мышью и считывать их координаты либо наоборот вводить в какую нибудь таблицу координаты этих точек, а они бы сами распределялись Помогите пожалуйста |
|
|
Алексей1153 |
8.11.2010, 11:11
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
PVGDRK, но тебе же не консольное приложение нужно.
А насчёт точек - нужно каждую точку описывать в программе как объект, помнить свойства этого объекта (координаты, цвет и тд) |
|
|
PVGDRK |
8.11.2010, 12:05
Сообщение
#5
|
Студент Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ткните мне,пожалуйста, какое мне нужно приложение:
QT Application QT Console Application не подходит ActiveQTServer QT4Desiner Plagin QT Library Я все таки предполагаю,что первое, правильно? При создании проекта автоматически создается форма ,,,, не знаю как правильно сказать эта форма описывается классом унаследованным от класса QMainWindow С ней нужно что нибудь делать или так оставить как есть? Потом создать новый класс моей точки наследовать его от классов QPaintDevice и QPaintEngine? |
|
|
Алексей1153 |
8.11.2010, 12:44
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
PVGDRK, я в креаторе пишу на Qt, как оно выглядит в студии -не знаю. Наверное, QT Application
|
|
|
igor_bogomolov |
8.11.2010, 12:52
Сообщение
#7
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Мне в конечном итоге нужно изобразить точки, которые можно было бы перемещать мышью и считывать их координаты либо наоборот вводить в какую нибудь таблицу координаты этих точек, а они бы сами распределялись Я бы на вашем месте не мучился и использовал для этих целей графическую сцену. Смотреть в сторону QGraphicsView, QGraphicsScene, QGraphicsItem. При помощи этих компонент вашу задачу решить легче.При создании проекта автоматически создается форма ,,,, не знаю как правильно сказать Это уже вам решать. Как вам проще создавать графический интерфейс в коде или при помощи qtdesigner. Мне больше нравится второй способ (хотя новичкам его обычно не рекомендуюn, и предлагают делать в коде, для более детального изучения qt)
эта форма описывается классом унаследованным от класса QMainWindow С ней нужно что нибудь делать или так оставить как есть? |
|
|
PVGDRK |
8.11.2010, 13:35
Сообщение
#8
|
Студент Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо за ответы Становится немного понятнее ....
А QT Desiner это самостоятельная среда разработки? Я уже всю студию перерыла так и не смогла найти этот Disiner.... QT у меня версия 4.3.1 - может его там нету? |
|
|
Litkevich Yuriy |
8.11.2010, 14:10
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А QT Desiner это самостоятельная среда разработки? нет, это визуальный редактор пользовательского (графического, визуального) интерфейсаЯ уже всю студию перерыла так и не смогла найти этот Disiner.... QT у меня версия 4.3.1 - может его там нету? в комплекте с Qt он точно есть, смотри кнопку "Пуск" -> "Qt ..."
|
|
|
PVGDRK |
11.11.2010, 12:03
Сообщение
#10
|
Студент Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: 0 |
Помогите пожалуйста понять почему не выводится рисунок? Хочу нарисовать прямую линию...
и еще почему то никак не поменять размер окна - может еще чего то где то нужно дописать? В QT примере при изменении значений размер окна меняется, а у меня нет Если полностью скопировать QT пример в проект - то все работает, а я хочу понять что где и для чего пишется. Уже весь код примера перерыла но так и не поняла почему у меня ничего не выводится... Файл window.h Раскрывающийся текст #ifndef WINDOW_H #define WINDOW_H #include <QWidget> #include <QPainter> class RenderArea; class Window : public QWidget { Q_OBJECT public: Window(); }; #endif файл window.cpp Раскрывающийся текст #include "window.h" #include <QtGui> #include <math.h> #include "renderarea.h" Window::Window() { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing,true); painter.drawLine(QPointF(10,10),QPointF(90,90)); // Рисуем линию } файл renderarea.h Раскрывающийся текст #ifndef RENDERAREA_H #define RENDERAREA_H #include <QPainterPath> #include <QWidget> class RenderArea : public QWidget { Q_OBJECT public: RenderArea(const QPainterPath &path, QWidget *parent = 0); QSize minimumSizeHint() const; QSize sizeHint() const; protected: void paintEvent(QPaintEvent *event); private: QPainterPath path; }; #endif файл renderarea.c Раскрывающийся текст #include <QtGui> #include "renderarea.h" RenderArea::RenderArea(const QPainterPath &path, QWidget *parent) : QWidget(parent), path(path) { } QSize RenderArea::minimumSizeHint() const { return QSize(50, 50); } QSize RenderArea::sizeHint() const { return QSize(100, 100); // Почему если поменять значения - размер окна не изменяется? } void RenderArea::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); painter.scale(width() / 100.0, height() / 100.0); painter.translate(50.0, 50.0); } |
|
|
Текстовая версия | Сейчас: 29.11.2024, 7:16 |