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, 20:59
Сообщение #2


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

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

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




Репутация:   29  


Цитата(Litkevich Yuriy @ 21.5.2009, 21:54) *
можно вместо посылки сообщения (sendEvent) вызвать метод paint()
Только не paint, a update

Цитата
void QWidget::update () [slot]


void CodeEdit::KeyPressEvent(QKeyEvent *key)
{
    update();
}


Сообщение отредактировал igor_bogomolov - 21.5.2009, 21:02
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- 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


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


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




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