Russian Qt Forum
Апрель 20, 2024, 14:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите новичку  (Прочитано 6999 раз)
evgeny
Гость
« : Июнь 17, 2004, 20:48 »

Пишу простенько проложение
Qt 3.2.3
KDevelop 3.0.1 (Linux Mandrake 10)
Создаю свой класс
Код:

class DrawDialog : public QDialog
{
    Q_OBJECT
public:
    DrawDialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
    ~DrawDialog();
    void paintEvent();
    void mouseMoveEvent();
};

DrawDialog::DrawDialog( QWidget* parent, const char* name, bool modal, WFlags fl )
    : QDialog( parent, name, modal, fl )
{
   setName( "DrawDialog" );
    resize( QSize(600, 482).expandedTo(minimumSizeHint()) );
    clearWState( WState_Polished );  
}
DrawDialog::~DrawDialog(){}

void DrawDialog::paintEvent(){
QBitmap bm(size());
bm.fill(white);
QPainter paint( &bm,this );
        paint.setPen( Qt::blue );
        paint.drawText( rect(), AlignCenter, "The Text" );
paint.end();
}

void DrawDialog::mouseMoveEvent(){
paintEvent();
}

По идее он дролжен рисовать текст при движении мыши(в определенном месте, неважно где). В итоге получается окно, в котором даже заголовок не меняется на  "DrawDialog", хотя в конструкторе есть соответствуюшая запись. И естественно ничего не рисуется. Где могут быть грабли?
Вот main.cpp если надо
Код:

int main(int argc, char *argv[])
{
  QApplication a(argc,argv);
  DrawDialog w;
  a.setMainWidget(&w);
  w.show();
  return a.exec();
}
Записан
Rainbow
Гость
« Ответ #1 : Июнь 17, 2004, 22:30 »

Что б установить заголовок надо воспользовся ф-й setCaption  
Код:

setCaption (  "DrawDialog");


Чтоб нарисовать надо перегружать paintEvent.
Посмотри как ?то делается здесь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.041 секунд. Запросов: 20.