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

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

Страниц: 1 ... 5 6 [7] 8 9 ... 11   Вниз
  Печать  
Автор Тема: Помощь для новичков  (Прочитано 127201 раз)
Геннадий Носов
Гость
« Ответ #90 : Август 20, 2015, 18:35 »

И одно другому не мешает - MSVC совсем неплохо дружит с Qt, нужно только поставить Add-In
Слышал о этом, но как-то не очень разобрался и в итоге поставил Qt отдельно. Это не принципиально? Или лучше поставить Add-In если VS уже установлена?

И ещё такой вопрос: в самом Qt много примеров и справочной информации встроено, но всё на английском. Не подскажите, есть ли где-то эти материалы с переводом?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #91 : Август 20, 2015, 18:56 »

Слышал о этом, но как-то не очень разобрался и в итоге поставил Qt отдельно. Это не принципиально? Или лучше поставить Add-In если VS уже установлена?
Без Add-In придется вместо MSVC придется использовать Qt Creator, mingw и.т.п. То есть можно, но с MSVC придется расстаться, устраивает ли Вас это - смотрите сами.

И ещё такой вопрос: в самом Qt много примеров и справочной информации встроено, но всё на английском. Не подскажите, есть ли где-то эти материалы с переводом?
Полно и на русском, но что это за программист если инглиш не понимает? Плохо начинаете
Записан
Геннадий Носов
Гость
« Ответ #92 : Август 21, 2015, 15:00 »

Всем добрый день)
Я решил последовать совету который мне дали выше, и установить Add-In к VS.
У меня Qt 5.5.0 и VS  ultimate 2013
Я устанавливал qt-vs-addin-1.2.3-opensource
Делал как написано в этой статье http://savepearlharbor.com/?p=181532
Только я переменные среды задал так (по аналогии)


Вкладка Qt в студии появилась, однако при попытке собрать проект выдало ошибку:
Код:
--- (Import): Generating new project of paint2.pro file
--- (qmake) : Using: c:\qt\qt5.5.0\5.5\msvc2013_64\bin\qmake
--- (qmake) : Working Directory: E:\Qt\APP2\paint2
--- (qmake) : Arguments: -tp vc "paint2.pro" -o "paint2.vcxproj" QMAKE_INCDIR_QT=$(QTDIR)\include QMAKE_LIBDIR=$(QTDIR)\lib QMAKE_MOC=$(QTDIR)\bin\moc.exe QMAKE_QMAKE=$(QTDIR)\bin\qmake.exe

[1] - Could not find qmake configuration file win32-msvc2013_64.
[2] - Error processing project file: paint2.pro

--- (Import): Error(s): 2
--- (qmake) : Exit Code: 3

--- (Import): Generating new project of paint2.pro file
--- (qmake) : Using: c:\qt\qt5.5.0\5.5\msvc2013_64\bin\qmake
--- (qmake) : Working Directory: E:\Qt\APP2\paint2
--- (qmake) : Arguments: -tp vc "paint2.pro" -o "paint2.vcxproj" QMAKE_INCDIR_QT=$(QTDIR)\include QMAKE_LIBDIR=$(QTDIR)\lib QMAKE_MOC=$(QTDIR)\bin\moc.exe QMAKE_QMAKE=$(QTDIR)\bin\qmake.exe

[1] - Could not find qmake configuration file win32-msvc2013_64.
[2] - Error processing project file: paint2.pro

--- (Import): Error(s): 2
--- (qmake) : Exit Code: 3
судя по строчке
Код:
[1] - Could not find qmake configuration file win32-msvc2013_64.
я не правильно задал QMAKESPEK. Во всяком случае мне так кажется. Проблема в том что как правильно, я не знаю.
« Последнее редактирование: Август 21, 2015, 15:22 от Геннадий Носов » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #93 : Август 21, 2015, 15:05 »

win32-msvc2013 указывайте
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #94 : Август 21, 2015, 15:51 »

При установленном дополнении к студии переменные QMAKESPEC и QTDIR определять не надо. Дополнение сделает это само, в зависимости от выбранной в проекте версии Qt. PATH надо определить только для запуска приложений вне студии, т.е. для поиска Qt dll.
P.S. Почитал статью - больше вреда, чем пользы. Переменные определяются автоматически, подключаемые модули выбираются через меню, список библиотек, директивы и пути поиска тоже определяются самим плагином.
« Последнее редактирование: Август 21, 2015, 15:54 от Hellraiser » Записан
Геннадий Носов
Гость
« Ответ #95 : Август 21, 2015, 19:18 »

win32-msvc2013 указывайте
Спасибо) Заработало))

Ну а в целом, как я теперь понял, можно было вообще без всяких заморочек просто поставить Add-On?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #96 : Август 22, 2015, 10:33 »

Ну а в целом, как я теперь понял, можно было вообще без всяких заморочек просто поставить Add-On?
Та не знаю, у меня в свое время на MSVC 2012 сразу встало, никаких статей не читал  Улыбающийся Была одна проблема - не хотела переводить имеющийся MSVC проект в Qt, пришлось добавить строку в файл проекта
Записан
Ilia_Ivanov
Гость
« Ответ #97 : Сентябрь 24, 2015, 22:39 »

У меня Qt 5.5.0 и VS  ultimate 2013

Маленький совет - если вы не на рабочем компьютере, где Ultimate версия куплена и поставлена за вас, используйте версию Community, лучше сразу 2015. Если вам всё купили, нет проблем, а так Microsoft вам делает щедрый подарок. Пиратка в наше время сильно не одобряется, сам начинал с Ultimate версии, сильно удивился, когда вышла бесплатная редакция.
Записан
Ilia_Ivanov
Гость
« Ответ #98 : Сентябрь 24, 2015, 22:46 »

Та не знаю, у меня в свое время на MSVC 2012 сразу встало, никаких статей не читал  Улыбающийся Была одна проблема - не хотела переводить имеющийся MSVC проект в Qt, пришлось добавить строку в файл проекта

Я начинал с Qt Creator, был поражён, насколько неудобная в нем отладка. Тормозит на каждом брекпойнте. Со студией проблем нет вообще никаких, кроме одной - не хочет открывать файл Qt Project. Было бы очень удобно. Скачал Qt Source, открыл файл pro  из комплекта - студия сделала невалидный файл решения, который не открывается. И так с каждым проектом. Designer запускается отлично, Linquist не проверял, когда дойдут руки до локализации, проверю.
Записан
Meloman
Гость
« Ответ #99 : Ноябрь 17, 2015, 15:57 »

Здравствуйте.
Ранее был установлен Qt Creator 3.3.2. В нем была возможность при создании нового проекта выбрать "Интерфейс Qt Quick"
После переустановки винды установил Qt Creator 3.5.1 , в нем нет такого выбора.
Вопрос: можно ли создавать в новом Креаторе простые QML проекты, без использования С++.
Ранее созданные проекты отлично работают, новые создать не получается. Настройки креаторы рыл - ничего не нашел.
Спасибо.

Благодарю тех, кто откликнулся (а может хотел, но не успел откликнуться)  Подмигивающий Нашел сам. Теперь этот тип проекта располагается в разделе "Другой проект" именуется "Qt Quick UI" и "Qt Quick Controls UI".
« Последнее редактирование: Ноябрь 18, 2015, 03:07 от Meloman » Записан
Геннадий Носов
Гость
« Ответ #100 : Март 14, 2016, 23:28 »

Сделал простую рисовалку. Суть: при событии mousePressEvent координаты точки сохраняются в массив. Потом в цикле все точки из этого массива отрисовываются в событии paintEvent
Тоже самое происходит при событии mouseMoveEvent но точки сохраняются в другой массив. К тому же при нажатии правой кнопки объекту QPainter присваивается перо другого цвета.

Проблема такая: линия всегда рисуется непрерывная, если закончить линию в одно месте, а потом начать в другом, начало второй линии соединяется с концом первой.
К тому же, при изменении цвета меняется цвет всего что нарисовано. При описанном методе рисования иначе и быть не может, очевидно.  Ведь фактически каждый раз вся картинка перерисовывается заново на основе массивов.
А как сделать чтоб линии рисовались отдельно, не соединяясь вместе, и каждая своим цветом?
Понятно, что можно для каждой новой линии создавать массив, и и записывать дополнительно  переменную отвечающую за цвет, а в событии рисования всё это рисовать. Но наверняка ведь есть способ попроще?

Ну и сама программа:

main:
Код:
#include "paint.h"
#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    paint w;
    w.show();
    return a.exec();
}

paint.h:
Код:
#ifndef PAINT_H
#define PAINT_H

#include <QtWidgets>

class paint : public QWidget
{
    Q_OBJECT
public:
    int btn;
    QVector<QPoint> vec;
    QVector<QPoint> vec2;
    explicit paint(QWidget *parent = 0);

protected:
    virtual void paintEvent(QPaintEvent*);
    virtual void mousePressEvent(QMouseEvent * ev);
    virtual void mouseMoveEvent(QMouseEvent * ev2);

signals:

public slots:
};

#endif // PAINT_H

paint.cpp
Код:
#include "paint.h"

paint::paint(QWidget *parent) : QWidget(parent)
{

}

void paint::paintEvent(QPaintEvent *)
{
    QPainter p(this);
    p.setPen(QPen(Qt::black,3));
    if(btn==1){
        p.setPen(QPen(Qt::white,3));
    }
   
   
    for(int i = 0; i<vec.count(); ++i)
   {
      p.drawPoint(vec[i]);
    }

     for(int i = 1; i<vec2.count(); ++i)
    {
    p.drawLine(vec2[i-1],vec2[i]);
     }
   
}



void paint::mousePressEvent(QMouseEvent *ev)
{
    if(ev->button()==Qt::RightButton){
        btn=1;
    }
    else{
        btn=0;
    }
    vec.insert(vec.end(),ev->pos());
     this->repaint();

}

void paint::mouseMoveEvent(QMouseEvent *ev2)
{

    vec2.insert(vec2.end(),ev2->pos());
    this->repaint();
}

Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #101 : Март 15, 2016, 09:45 »

Кто такой vec и vec2? Подозреваю, QVector<QPoint>. У вектора есть замечательные методы, добавляющие в конец: push_back, append и operator<<
Код
C#
vec.append(ev->pos());
vec2 << ev2->pos()

Рисуются линии непрерывно, потому что вы в цикле просите брать предыдущую точку и текущую.
В идеале, вам надо бы завести структуру Segment, с 2 точками и цветом или воспользоваться QPair<QPoint, QPoint>. Если хочется побыстрее, то измените цикл на

Код
C++ (Qt)
for(int i = 1; i<vec2.count(); i += 2)
 

Нет ничего страшного хранить отдельно цвета и каждый раз их использовать при перерисовке.
Быть может более опытные пользователи подскажут, есть ли возможность рисовать на прозрачный холст и при перерисовке натягивать его на виджет чтобы не хранить цвета, но мне кажется этот метод будет не очень.
Записан
Геннадий Носов
Гость
« Ответ #102 : Март 15, 2016, 14:14 »

Кто такой vec и vec2? Подозреваю, QVector<QPoint>. У вектора есть замечательные методы, добавляющие в конец: push_back, append и operator<<
Спасибо)

Нет ничего страшного хранить отдельно цвета и каждый раз их использовать при перерисовке.
Быть может более опытные пользователи подскажут, есть ли возможность рисовать на прозрачный холст и при перерисовке натягивать его на виджет чтобы не хранить цвета, но мне кажется этот метод будет не очень.
Я и не говорю, что это страшно... Напротив, в каких-то ситуациях возможность быстро изменить стиль линии и цвет сразу всего рисунка может оказаться очень даже полезной...  Просто я делал раньше нечто подобное в Visual Studio и там в методе рисования новые точки просто дорисовывались к тому, что уже есть в окне. Никаких дополнительных массивов и проблем с рисованием разными цветами...  Я и подумал, может в Qt есть аналогичный режим?
« Последнее редактирование: Март 15, 2016, 14:18 от Геннадий Носов » Записан
Геннадий Носов
Гость
« Ответ #103 : Март 26, 2016, 00:55 »

Здравствуйте!
Такая проблема:
 Захотел программу из Qt на другом компе запустить... Она сначала ругалась, что отсуствуют длл, я их искал и клал с программой в одну папку. Вроде в интернете написано что так надо делать... Но в конце концов оно мне выдало какое-то сообщение не касающееся длл и всё равно не запускается.
Что делать?
« Последнее редактирование: Март 26, 2016, 01:06 от Геннадий Носов » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #104 : Март 26, 2016, 01:03 »

папку platform тоже киньте. точнее windows.dll
Записан
Страниц: 1 ... 5 6 [7] 8 9 ... 11   Вверх
  Печать  
 
Перейти в:  


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