• 4172阅读
  • 4回复

[提问]如何通过按钮把widget挪动位置 [复制链接]

上一主题 下一主题
离线pahxgh2000
 
只看楼主 倒序阅读 楼主  发表于: 2011-11-15
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QtCore>
  4. #include <QtGui>
  5. MainWindow::MainWindow(QWidget *parent) :
  6.     QMainWindow(parent),
  7.     ui(new Ui::MainWindow)
  8. {
  9.     ui->setupUi(this);
  10.     createAnimation();
  11. }
  12. void MainWindow::createAnimation(){
  13.     QStateMachine machine;
  14.     QState *state1 = new QState(&machine);
  15.     QState *state2 = new QState(&machine);
  16.     machine.setInitialState(state1);
  17.     state1->assignProperty(ui->widget, "pos", QPointF(0, 0));
  18.     state2->assignProperty(ui->textEdit, "text", "Switch to state 1");
  19.     state2->assignProperty(ui->textEdit, "text", "Switch to state 2");
  20.     state2->assignProperty(ui->widget,"pos",QPointF(-ui->widget->x(),0));
  21.     QAbstractTransition *t1 = state1->addTransition(ui->first, SIGNAL(clicked()), state2);
  22.     t1->addAnimation(new QPropertyAnimation(ui->widget, "pos"));
  23.     QAbstractTransition *t2 = state2->addTransition(ui->first, SIGNAL(clicked()), state1);
  24.     t2->addAnimation(new QPropertyAnimation(ui->widget, "pos"));
  25.     machine.start();
  26. }
  27. MainWindow::~MainWindow()
  28. {
  29.     delete ui;
  30. }
我想要的效果是点击first这个按钮widget会挪走,这种效果,但是编译出来之后点击按钮first没有效果,请教高手~


离线jdwx

只看该作者 1楼 发表于: 2011-11-15
回 楼主(pahxgh2000) 的帖子
只用QPropertyAnimation就可以做到
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 2楼 发表于: 2011-11-15
你是不是把这个widget放到布局里了?
我想放到布局理的话对他设置位置是没有效果的
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线pahxgh2000
只看该作者 3楼 发表于: 2011-11-15

没有布局吧这是
离线roywillow

只看该作者 4楼 发表于: 2011-11-15
呃……这个就不清楚了……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个