![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Angisha |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 9.7.2013 Пользователь №: 3878 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Подскажите пожалуйста, как реализовать вращающийся отрезок. Через цикл я создаю отрезки, после чего каждый закрашивается, тем самым получается эффект вращения эффект вращения. Но при запуске получаем конечный результат. Как сделать перерисовку окна или что можно еще сделать. Программист из меня не очень, так что пишите подробнее, пожалуйста)) так же кусочек программы(слот):
void MainWindow::on_action_9_activated() {float i,j,r,x0,y0,x,y,t=360; QGraphicsScene *scene = new QGraphicsScene(ui->graphicsView); x0=ui->lineEdit_x0->text().toFloat(); y0=ui->lineEdit_y0 ->text().toFloat(); x=ui->lineEdit_x ->text().toFloat(); y=ui->lineEdit_y ->text().toFloat(); QPen pen1(Qt::green); //scene->addLine(0,0,100,100,pen1); r=sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0)); for (j=0;j<10;j++) {for (i=t-1;i>=0;i--) { scene->addLine(x,y,x+cos(i)*r,y+sin(i)*r,pen1); ??? - вроде как что-то нужно вставить сюда QPen pen2(Qt::white); scene->addLine(x0,y0,x0+cos(i)*r,y0+sin(i)*r,pen2); ui->graphicsView->setScene(scene);}}} |
|
|
ilyabvt |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Через цикл я создаю отрезки, после чего каждый закрашивается, тем самым получается эффект вращения эффект вращения. Но при запуске получаем конечный результат. Просто первые 9 результатов вы не успеваете заметить, цикл отрабатывает очень быстро. Нужно сделать исскуственную задержку. Используйте для этого QTimer, он через равные промежутки будет вызывать нужный слот. Координаты придеться хранить в классе. Обычно закрашиваеться не только линия, но и вся область перерисовки. Но в данном случае не принципиально. Цитата Программист из меня не очень, так что пишите подробнее, пожалуйста)) Могу накидать пример с использованием QPainter, QGraphicsScene я не очень люблю. Сообщение отредактировал ilyabvt - 12.7.2013, 20:23 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.5.2025, 18:54 |