crossplatform.ru

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

5 страниц V  « < 3 4 5  
Ответить в данную темуНачать новую тему
> Дополнительный виджет, Плоттер
AD
  опции профиля:
сообщение 6.11.2009, 15:49
Сообщение #41


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(++Norton++ @ 8.3.2009, 0:46) *
Спасибо! Теперь все работает! Только лента не вырисовывается, а так масштабирование проходит нормально :)

Не знаю надо это сейчас или не очень. Но лента не будет вырисовываться, если вместо следующей строки:
rubber(new QRubberBand(QRubberBand::Rectangle, this))

делать такую строку:
rubber(new QRubberBand(QRubberBand::Rectangle, parent))


Надо обязательно брать в качестве родителя тот виджет, на котором рисуется все, а не его родитель!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 24.12.2009, 21:20
Сообщение #42





Гости








    


Уважаемые, поясните пожалуйста что за файл подключается, ui_GraphicWidget.h, и откуда он должен взяться? (ругается на него компилятор)

ошибка:fatal error C1083: Cannot open include file: 'ui_GraphicWidget.h': No such file or directory
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 24.12.2009, 22:33
Сообщение #43


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(Гость @ 24.12.2009, 21:20) *
Уважаемые, поясните пожалуйста что за файл подключается, ui_GraphicWidget.h, и откуда он должен взяться? (ругается на него компилятор)

ошибка:fatal error C1083: Cannot open include file: 'ui_GraphicWidget.h': No such file or directory

У Вас должен быть ui-файл. Т.е. файл формы, воспринимаемого дизайнером Qt! ui_GraphicWidget.h - это файл описания виджетов, расположенных на форме. Судя из примера, файл должен быть таким:
/********************************************************************************
** Form generated from reading ui file 'GraphicWidget.ui'
**
** Created: Thu 5. Mar 12:26:58 2009
**      by: Qt User Interface Compiler version 4.3.2
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/

#ifndef UI_GRAPHICWIDGET_H
#define UI_GRAPHICWIDGET_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QGridLayout>
#include <QtGui/QWidget>

class Ui_GraphicWidgetClass
{
public:
    QGridLayout *gridLayout;
    QWidget *graphWidget;

    void setupUi(QWidget *GraphicWidgetClass)
    {
    if (GraphicWidgetClass->objectName().isEmpty())
        GraphicWidgetClass->setObjectName(QString::fromUtf8("GraphicWidgetClass"));
    GraphicWidgetClass->resize(600, 400);
    QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    sizePolicy.setHorizontalStretch(0);
    sizePolicy.setVerticalStretch(0);
    sizePolicy.setHeightForWidth(GraphicWidgetClass->sizePolicy().hasHeightForWidth());
    GraphicWidgetClass->setSizePolicy(sizePolicy);
    gridLayout = new QGridLayout(GraphicWidgetClass);
    gridLayout->setSpacing(6);
    gridLayout->setMargin(11);
    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
    gridLayout->setHorizontalSpacing(1);
    gridLayout->setVerticalSpacing(3);
    gridLayout->setContentsMargins(3, 3, 1, 3);
    graphWidget = new QWidget(GraphicWidgetClass);
    graphWidget->setObjectName(QString::fromUtf8("graphWidget"));
    sizePolicy.setHeightForWidth(graphWidget->sizePolicy().hasHeightForWidth());
    graphWidget->setSizePolicy(sizePolicy);

    gridLayout->addWidget(graphWidget, 0, 0, 1, 1);


    retranslateUi(GraphicWidgetClass);

    QMetaObject::connectSlotsByName(GraphicWidgetClass);
    } // setupUi

    void retranslateUi(QWidget *GraphicWidgetClass)
    {
    GraphicWidgetClass->setWindowTitle(QApplication::translate("GraphicWidgetClass", "GraphicWidget", 0, QApplication::UnicodeUTF8));
    Q_UNUSED(GraphicWidgetClass);
    } // retranslateUi

};

namespace Ui {
    class GraphicWidgetClass: public Ui_GraphicWidgetClass {};
} // namespace Ui

#endif // UI_GRAPHICWIDGET_H
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.12.2009, 22:35
Сообщение #44


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_Гость_* @ 25.12.2009, 0:20) *
ui_GraphicWidget.h,
такие файлы генерит утилита uic из ui-файлов (в твоём случае из GraphicWidget.ui).
Если используешь qmake для создания проектов, то в pro-файле должна быть строчка:
FORMS += GraphicWidget.ui
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AlmNeft
  опции профиля:
сообщение 17.4.2010, 22:43
Сообщение #45


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 17.4.2010
Пользователь №: 1637

Спасибо сказали: 0 раз(а)




Репутация:   0  


AD, ++Norton++, выложите пожалуйста папку с прогой полностью если сохранилось у кого-нить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 17.4.2010, 23:28
Сообщение #46


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(AlmNeft @ 17.4.2010, 23:43) *
AD, ++Norton++, выложите пожалуйста папку с прогой полностью если сохранилось у кого-нить?

Я ничего выкладывать не буду. Все, что необходимо, описано в теме. Весь код уже выложен. Создать проект можно самостоятельно!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Fitz
  опции профиля:
сообщение 2.12.2010, 14:26
Сообщение #47


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 22.11.2010
Пользователь №: 2207

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Гость @ 24.12.2009, 21:20) *
Уважаемые, поясните пожалуйста что за файл подключается, ui_GraphicWidget.h, и откуда он должен взяться? (ругается на него компилятор)

ошибка:fatal error C1083: Cannot open include file: 'ui_GraphicWidget.h': No such file or directory

Тоже очень долго не мог собрать из-за этой ошибки проект.
Проблема в том, что при создании нового проекта в QtCreator'е, при задании ему имени GraphicWidget (как писал в начале AD) создаются следующие файлы:
- GraphicWidget.pro
- GraphicWidget.h
- GraphicWidget.cpp
- GraphicWidget.ui
и в файле формы GraphicWidget.ui основной(родительский) виджет имеет название GraphicWidget(!), впоследствии утилита uac генерирует из .ui класс
class Ui_GraphicWidget

а в листинге AD необходим класс
class Ui_GraphicWidgetClass

Следовательно идем в дизайнер форм и переименовываем основной виджет из GraphicWidget в GraphicWidgetClass.

Пересобираем, любуемся.
По сути получилась ошибка зависимостей(как показывает компилятор), но не совсем.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Fitz
  опции профиля:
сообщение 4.2.2011, 15:02
Сообщение #48


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 22.11.2010
Пользователь №: 2207

Спасибо сказали: 0 раз(а)




Репутация:   0  


/// Инициализация координат - преобразование из координат графика (sx,sy) в экранные (x,y)
QPointF GraphicWidget::initXY(double sx, double sy)
{
    QRect rect(graphWidget -> rect());
    double dx, dy;

    /// Вычисление смещений вдоль осей
    dx = sx - settings.maxX;
    dy = sy - settings.minY;

    /// Вычисление экранных координат
    double x = rect.right() + (dx * (rect.width() - 1) / settings.spanX());
    double y = rect.bottom() - (dy * (rect.height() - 1) / settings.spanY());

    return QPointF(x, y);
}

Ошибка в вычислении смещения.
dx = sx - settings.maxX;

Исправление:
    dx = sx - settings.minX;
    dy = sy - settings.minY;
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.11.2024, 15:46