crossplatform.ru

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

voipp
  опции профиля:
сообщение 24.10.2009, 16:39
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 116
Регистрация: 20.10.2009
Из: Msk
Пользователь №: 1166

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




Репутация:   0  


как реализовать индивидуальные для сигналов прорисовки виджета?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
voipp
  опции профиля:
сообщение 24.10.2009, 18:53
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 116
Регистрация: 20.10.2009
Из: Msk
Пользователь №: 1166

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




Репутация:   0  


Я создал приложение вкотором на доке 4 кнопки а в центре виджет widget для рисования
Вот что у меня получилось но выскакивает ошибка что множственное определение (multiple definition) и показывается код который преобразовал компилятор COM
вот mainwindow.cpp -

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{

    ui->setupUi(this);
curr_direct= down;
connect(ui->Up,SIGNAL(Clicked),this,SIGNAL(pUp()));
connect(ui->Down,SIGNAL(Clicked),this,SIGNAL(pDown()));
connect(ui->Left,SIGNAL(Clicked),this,SIGNAL(pLeft()));
connect(ui->Right,SIGNAL(Clicked),this,SIGNAL(pRight()));

}


void MainWindow::pUp(){
    curr_direct= up;
    update();
};

также реализуются кнопки вниз налево направо.

void MainWindow::paintEvent(QPaintEvent*){
    switch (curr_direct){
        case up:
            where2paint->Up();
            break;
        case down:
            where2paint->Down();
            break;
        case left:
            where2paint->Left();
            break;
        case right:
            where2paint->Right();
            break;
        };
};
//.......

widget.cpp - 

Widget::Widget(QWidget *parent):QWidget(parent)
{
    painter= new QPainter(this);
    pen= new QPen;
    pen->setColor(Qt::red);
    pen->setWidth(5);
    painter->setPen(*pen);
    *curr_point= QPoint(0,0);

}

void Widget::Up(){
    painter->drawLine(*curr_point,(*curr_point+= QPoint(curr_point->x(),curr_point->y()- 5)));
};
также реализуются кнопки вниз налево и направо.
/......


curr_direct это перечисление со значениями ltft right up down
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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


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