• 4309阅读
  • 1回复

用QT设计一个窗口,能否实现缩放的打开缩放的关闭,就像Vista一样? [复制链接]

上一主题 下一主题
离线linjack
 

只看楼主 倒序阅读 楼主  发表于: 2008-08-28
— 本帖被 XChinux 执行加亮操作(2008-08-29) —
大家好!
    小弟初识QT一个月,想问一个问题:用QT设计程序时,能否将窗口实现为打开关闭时都有一种缩放的感觉,就像Vista一样,给人一种很炫的感觉,具体用哪些类呀?谢谢!
加油学QT
离线fanzhichao

只看该作者 1楼 发表于: 2008-08-28
A窗口关闭时的逐渐缩小效果:(以下假定A窗口为B窗口的子窗口)
1.A窗口发送一个信号给B,信号你自己定义
2.在B中定义以下dd:
  2.1 对应1中信号的slot函数:beginFlash
    2.2  一个定时器closeTimer
    2.3 定时器的slot函数:drawCloseFrame
    2.4 QPixmap  backPixmap , flashPixmap
    2.5 int x, y;
    2.6 float zoomx;
3. 添加代码:
  3.1  beginFlash中先将A窗口的图片获取到:
    backPixmap = backPixmap.grabWidget();
        flashPixmap  = backPixmap ;
        x = y = 0;
        zoomx = 1.0f;
        启动定时器
    A.hide()
  3.2 drawCloseFrame中
    if(zoom < 0)
      {
        干掉定时器。动画放完了
    A.close();
      }
    获取qpainter,绘图
    p.drawPixmap(x, y, flashPixmap );
        zoom-= 0.1; 
          计算x,y的坐标,从最开始的(0,0)直到主窗口中心
        QWMatrix matrix;
        matrix.scale(zoom,zoom);
        // zoom为缩放比率
        flashPixmap = backPixmap .xForm(matrix);       
   
快速回复
限100 字节
 
上一个 下一个