crossplatform.ru

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

> проблема с рисованием
narik1985
  опции профиля:
сообщение 21.5.2009, 2:17
Сообщение #1


Новичок


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

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




Репутация:   0  


доброй ночи всем.
//sk.h

#ifdef SK
#define SK

#include <QtGui>
class QWidget;
class CodeEdit : public QWidget
{
Q_OBJECT
public:
CodeEdit(QWidget *parent = 0);
protected:
void paintEvent(QPaintEvent *);
}

#endif


//sk.cpp

CodeEdit::CodeEdit(QWidget *parent):QWidget(parent)
          {};
void CodeEdit::paintEvent(QPaintEvent *)
          {
           QPainter paint(this);
           paint.drawText(50,50,"hello world!!!");
          };


//main.cpp
#include <QtGui>

int main(int argc,char *argv[])
         {
          QApplication app(argc,argv);
          CodeEdit *codeEdit = new CodeEdit;
          codeEdit->show();
          QEvent event(QEvent::Paint);
          QApplication::sendEvent(codeEdit,&event);
          return app.exec();

          }


При запуске выдает:
QPainter::begin: Widget painting can only begin as a result of a paintEvent

вопросы: почему если я вызываю в программе событие Paint он не рисует? а если программа сама генерирует событие то выводится все нормально?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 21.5.2009, 21:46
Сообщение #2


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

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


Цитата(narik1985 @ 21.5.2009, 22:05) *
С Update() все получается, но в чем именно я не прав?
Про что вопрос? Как сэмулировать событие рисования?
void CodeEdit::KeyPressEvent(QKeyEvent *key)
{
         QPaintEvent *event = new QPaintEvent(rect());
         QCoreApplication::postEvent(this, event);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
narik1985
  опции профиля:
сообщение 21.5.2009, 22:00
Сообщение #3


Новичок


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

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




Репутация:   0  


Цитата(igor_bogomolov @ 21.5.2009, 22:46) *
Цитата(narik1985 @ 21.5.2009, 22:05) *
С Update() все получается, но в чем именно я не прав?
Про что вопрос? Как сэмулировать событие рисования?
void CodeEdit::KeyPressEvent(QKeyEvent *key)
{[codebox]sk.cpp In member function 'virtual void CodeEdit::keyPressEvent(QKeyEvent*)':
sk.cpp:25: error: '((CodeEdit*)this)->CodeEdit::rect' cannot be used as a function[/codebox]
         QPaintEvent *event = new QPaintEvent(rect());
         QCoreApplication::postEvent(this, event);
}


Не вопрос в другом, почем когда я событие из события вызываю, то он не отрисовывает, в то время когда приложение само вызывает, то отрисовка проходит, что я конкретно не правильно делаю... (как мне кажется работать же должно)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- narik1985   проблема с рисованием   21.5.2009, 2:17
- - Litkevich Yuriy   возможно это из-за того, что ты пытешся послать со...   21.5.2009, 3:19
|- - narik1985   Цитата(Litkevich Yuriy @ 21.5.2009, 4:19)...   21.5.2009, 20:43
- - Litkevich Yuriy   Цитата(narik1985 @ 22.5.2009, 0:43) пробы...   21.5.2009, 20:49
|- - narik1985   при изменении размера происходит, при перетаскиван...   21.5.2009, 20:51
- - Litkevich Yuriy   события посылать я не пробовал, незнаю точно как э...   21.5.2009, 20:54
|- - narik1985   Цитата(Litkevich Yuriy @ 21.5.2009, 21:54...   21.5.2009, 21:05
- - igor_bogomolov   Цитата(Litkevich Yuriy @ 21.5.2009, 21:54...   21.5.2009, 20:59
- - igor_bogomolov   Цитата(narik1985 @ 21.5.2009, 22:05) С Up...   21.5.2009, 21:46
|- - narik1985   Цитата(igor_bogomolov @ 21.5.2009, 22:46)...   21.5.2009, 22:00
- - Litkevich Yuriy   Да, что-то оно ни вкакую не рисуется. Я уже два кл...   22.5.2009, 2:40
- - igor_bogomolov   Цитата(Litkevich Yuriy @ 22.5.2009, 3:40)...   22.5.2009, 11:32
- - Litkevich Yuriy   Цитата(igor_bogomolov @ 22.5.2009, 15:32)...   22.5.2009, 12:10
- - igor_bogomolov   Цитата(Litkevich Yuriy @ 22.5.2009, 13:10...   22.5.2009, 12:17
- - Rocky   Не совсем по теме, но вот эта вещь, narik1985, имх...   3.6.2009, 0:07
- - Litkevich Yuriy   ну да, перепутал человек.   3.6.2009, 9:12


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


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




RSS Текстовая версия Сейчас: 1.12.2024, 13:26