crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Как рисовать в 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


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 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


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 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  


Цитата(PVGDRK @ 8.11.2010, 11:04) *
Мне в конечном итоге нужно изобразить точки, которые можно было бы перемещать мышью и считывать их координаты либо наоборот вводить в какую нибудь таблицу координаты этих точек, а они бы сами распределялись
Я бы на вашем месте не мучился и использовал для этих целей графическую сцену. Смотреть в сторону QGraphicsView, QGraphicsScene, QGraphicsItem. При помощи этих компонент вашу задачу решить легче.

Цитата(PVGDRK @ 8.11.2010, 12:05) *
При создании проекта автоматически создается форма ,,,, не знаю как правильно сказать
эта форма описывается классом унаследованным от класса QMainWindow
С ней нужно что нибудь делать или так оставить как есть?
Это уже вам решать. Как вам проще создавать графический интерфейс в коде или при помощи qtdesigner. Мне больше нравится второй способ (хотя новичкам его обычно не рекомендуюn, и предлагают делать в коде, для более детального изучения qt)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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  


Цитата(PVGDRK @ 8.11.2010, 16:35) *
А QT Desiner это самостоятельная среда разработки?
нет, это визуальный редактор пользовательского (графического, визуального) интерфейса

Цитата(PVGDRK @ 8.11.2010, 16:35) *
Я уже всю студию перерыла так и не смогла найти этот 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);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 12:44