Russian Qt Forum

Qt => Вопросы новичков => Тема начата: smackthat от Февраль 12, 2011, 12:18



Название: Не получается нарисовать линию на кнопке
Отправлено: smackthat от Февраль 12, 2011, 12:18
Пустой проект, добавил кнопку и такую функцию:
Код:
void MainWindow::draw()
{
    painter->begin(ui->pushButton);
    painter->setPen(Qt::blue);
    painter->drawLine(1,1,20,20);
    painter->end();
}

Главная функция:
Код:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    w.draw();

    return a.exec();
}
В конструкторе:
Код:
painter=new QPainter;
Компилиться, запускаю - линии нет. В чем проблема?


Название: Re: Не получается нарисовать линию на кнопке
Отправлено: BRE от Февраль 12, 2011, 12:41
В том, что ты не разобрался с системой рисования.
Почитай assistant на тему: Paint System
посмотри примеры, на форуме уже не раз поднималась эта тема, поищи.


Название: Re: Не получается нарисовать линию на кнопке
Отправлено: smackthat от Февраль 12, 2011, 15:03
Что такое assistent? Примеры нашел, изучаю.


Название: Re: Не получается нарисовать линию на кнопке
Отправлено: BRE от Февраль 12, 2011, 15:10
Что такое assistent? Примеры нашел, изучаю.
Это программа для чтения документации по Qt.


Название: Re: Не получается нарисовать линию на кнопке
Отправлено: smackthat от Февраль 12, 2011, 16:38
Спасибо, в общем нужно рисовать все переопределяя функцию QWidget::paintEvent(QPaintEvent *), которая вызывается, когда нужно перерисовать виджет. А если мне нужно перерисовывать виджет с определенной частотой, то можно воспользоваться таймером.
Поправьте, если я неправильно понял.