![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Алексей1153 |
![]()
Сообщение
#11
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Window::Window() { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing,true); painter.drawLine(QPointF(10,10),QPointF(90,90)); // Рисуем линию } зачем это в конструкторе ? Убирай оттуда это ![]() Чтобы реагировать на изменение размера, переопредели виртуалку void QWidget::resizeEvent ( QResizeEvent * event ) |
|
|
PVGDRK |
![]()
Сообщение
#12
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
В paintEvent тоже размещала - все равно не выводится линия
может чего забыла где приписать, инклюд какой нибудь или еще чего нибудь? |
|
|
Алексей1153 |
![]()
Сообщение
#13
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
и вот так не рисуется ?
а окно то вообще на экране отображено ? Может оно невидимо |
|
|
PVGDRK |
![]()
Сообщение
#14
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Да, окно есть , но на нем ничего не рисуется
![]() |
|
|
igor_bogomolov |
![]()
Сообщение
#15
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
я не вижу как у вас связаны RenderArea и Window?
|
|
|
PVGDRK |
![]()
Сообщение
#16
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
похоже они у меня не связаны
![]() Если в файл window.h изменить так: Раскрывающийся текст #ifndef WINDOW_H #define WINDOW_H #include <QWidget> #include <QPainter> class RenderArea; class QComboBox; class Window : public QWidget { Q_OBJECT public: Window(); private: QComboBox *fillRuleComboBox; }; #endif А файл window.с изменить так: Раскрывающийся текст #include "window.h" #include <QtGui> #include <math.h> #include "renderarea.h" Window::Window() { fillRuleComboBox = new QComboBox; fillRuleComboBox->addItem(tr("Odd Even"), Qt::OddEvenFill); fillRuleComboBox->addItem(tr("Winding"), Qt::WindingFill); QGridLayout *mainLayout = new QGridLayout; mainLayout->addWidget(fillRuleComboBox, 1, 1, 1, 3); setLayout(mainLayout); } То выводится маленькое окошко с комбобоксом,,,, Как это все связать? Я уже запуталась |
|
|
Алексей1153 |
![]()
Сообщение
#17
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
PVGDRK, тебе надо объявить в классе Window
а затем реализовать
а насчёт комбы - ну это ты сама решай, надо тебе его или нет )) |
|
|
PVGDRK |
![]()
Сообщение
#18
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вот спасибо то огромное!!! Нарисовалась линия
![]() Уж простие, но мне бы как для самого круглого чайника, не могли бы пояснить с размером окна void QWidget::resizeEvent ( QResizeEvent * event ) Куда это вписать ? почему окно все равно выводится, если написано так: файл window.h Раскрывающийся текст #ifndef WINDOW_H #define WINDOW_H #include <QWidget> #include <QPainter> class RenderArea; class QWidget; class Window : public QWidget { Q_OBJECT public: Window(); protected: void paintEvent(QPaintEvent *); }; #endif файл window.c Раскрывающийся текст #include "window.h" #include <QtGui> #include <math.h> #include "renderarea.h" Window::Window() { } файл 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); private: QPainterPath path; }; #endif файл renderarea.c Раскрывающийся текст #include <QtGui> #include <QPainter> #include "renderarea.h" #include "window.h" RenderArea::RenderArea(const QPainterPath &path, QWidget *parent) : QWidget(parent), path(path) { } void Window::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing,true); painter.drawLine(QPointF(10,10),QPointF(90,90)); } Где тогда задаются размеры окна? |
|
|
Алексей1153 |
![]()
Сообщение
#19
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
не понимаю вопрос - размеры какого окна хочешь задавать ? Какова иерархия окон и их взаимное расположение ?
|
|
|
PVGDRK |
![]()
Сообщение
#20
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
С вышеприведенным текстом у меня выводится одно окно почти на весь экран с нарисованной линией.... Поэтому я предполагаю, что нет у меня иерархии окон ... может и окна то нет? В смысле оно не описано как надо... Но я то его вижу... Ох, все- совсем запуталась
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.6.2025, 14:03 |