Пишу простенько проложение
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();
}