crossplatform.ru

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


  Ответ в Дополнительный виджет
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Fitz Дата 4.2.2011, 15:02
 
/// Инициализация координат - преобразование из координат графика (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;
Fitz Дата 2.12.2010, 14:26
 
Цитата(Гость @ 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.

Пересобираем, любуемся.
По сути получилась ошибка зависимостей(как показывает компилятор), но не совсем.
AD Дата 17.4.2010, 23:28
 
Цитата(AlmNeft @ 17.4.2010, 23:43) *
AD, ++Norton++, выложите пожалуйста папку с прогой полностью если сохранилось у кого-нить?

Я ничего выкладывать не буду. Все, что необходимо, описано в теме. Весь код уже выложен. Создать проект можно самостоятельно!
AlmNeft Дата 17.4.2010, 22:43
  AD, ++Norton++, выложите пожалуйста папку с прогой полностью если сохранилось у кого-нить?
Litkevich Yuriy Дата 24.12.2009, 22:35
 
Цитата(Гость_Гость_* @ 25.12.2009, 0:20) *
ui_GraphicWidget.h,
такие файлы генерит утилита uic из ui-файлов (в твоём случае из GraphicWidget.ui).
Если используешь qmake для создания проектов, то в pro-файле должна быть строчка:
FORMS += GraphicWidget.ui
AD Дата 24.12.2009, 22:33
 
Цитата(Гость @ 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
Гость Дата 24.12.2009, 21:20
  Уважаемые, поясните пожалуйста что за файл подключается, ui_GraphicWidget.h, и откуда он должен взяться? (ругается на него компилятор)

ошибка:fatal error C1083: Cannot open include file: 'ui_GraphicWidget.h': No such file or directory
AD Дата 6.11.2009, 15:49
 
Цитата(++Norton++ @ 8.3.2009, 0:46) *
Спасибо! Теперь все работает! Только лента не вырисовывается, а так масштабирование проходит нормально :)

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

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


Надо обязательно брать в качестве родителя тот виджет, на котором рисуется все, а не его родитель!
AD Дата 27.9.2009, 17:10
 
Цитата(Litkevich Yuriy @ 27.9.2009, 18:01) *
AD, чёто с русскими коментариями бяка какая-то

Видел. Да и фиг с ними. И так ясно. Тут три страницы разъяснений уже! :)
Litkevich Yuriy Дата 27.9.2009, 17:01
  AD, чёто с русскими коментариями бяка какая-то
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 3:55