crossplatform.ru

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

tutta
  опции профиля:
сообщение 16.5.2009, 15:46
Сообщение #1


Новичок


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

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




Репутация:   0  


Ребята! Очень нужна ваша помощь. с QT Знакома плохо, только начинаю. Задача в том чтобы написать рисование карандашом в qt. Я это сделала с помощью Pixmap. Но проблема в том, что на главное окошко нельзя добавлять кнопки, там только этот Pixmap. Помогите, как исправить код, чтобы Pixmap был не в главном окошке а на каком то виджете, чтобы была возможность добавлять кнопки и другие виджеты


 
#include <QApplication>
#include <QPainter>
#include <QImage>
#include <QMouseEvent>
#include <QPaintEvent>
#include <QWidget>


class Paint : public QWidget
{

public:
    Paint()
    {
        pixmap_ = QPixmap( 4096, 4096 );
        pixmap_.fill( 0xffffffff);
        pen_ = QPen( QBrush( Qt::green), 5.0f );
    }

protected:
    void mousePressEvent( QMouseEvent * e )
    {
        if ( e->button() == Qt::LeftButton )
        {
            QPainter p( &pixmap_ );
            p.setPen( pen_ );
            p.drawPoint( e->pos() );
            p.end();

            lastPoint_ = e->pos();

            update();
        }
    }

    void mouseMoveEvent( QMouseEvent * e )
    {
        if ( e->buttons() & Qt::LeftButton )
        {
            QPainter p( &pixmap_ );
            p.setPen( pen_ );
            p.drawLine( lastPoint_, e->pos() );
            p.end();

            lastPoint_ = e->pos();

            update();
        }
    }

    void paintEvent( QPaintEvent * )
    {
        QPainter p( this );
        p.setCompositionMode( QPainter::CompositionMode_Source );
        p.drawPixmap( QPoint(), pixmap_ );
    }

private:
    QPen pen_;
    QPixmap pixmap_;
    QPoint lastPoint_;
};




int main( int argc, char ** argv )
{
    QApplication app( argc, argv );

    Paint point;
    point.show();
    

    return app.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 20.6.2025, 10:11