• 4757阅读
  • 3回复

关于不规则圆型时钟 [复制链接]

上一主题 下一主题
离线faholiang
 
只看楼主 倒序阅读 楼主  发表于: 2010-02-08
 

各位英雄好汉们,小弟遇到问题,如附件里的图,它是一个不规则的圆形,请问做一个时钟应该如何做
给点提示或源代码更佳
离线hope_yh

只看该作者 1楼 发表于: 2010-02-08
#include <QtGui>

class QPoint;

class ShapeWidget : public QWidget
{
    Q_OBJECT
public:
    ShapeWidget(QWidget *parent=0);

protected:
    void mousePressEvent(QMouseEvent *);
    void mouseMoveEvent(QMouseEvent *);
    void paintEvent(QPaintEvent *);

private:
    QPoint dragPosition;

};

hapeWidget::ShapeWidget(QWidget *parent)
    : QWidget(parent,Qt::FramelessWindowHint)
{
    QPixmap pix;
    pix.load(":/images/tux.png",0,Qt::AvoidDither|Qt::ThresholdDither|Qt::ThresholdAlphaDither);
    resize(pix.size());
    setMask(pix.mask());
}

void ShapeWidget::mousePressEvent(QMouseEvent * event)
{
    if (event->button() == Qt::LeftButton)
    {
         dragPosition = event->globalPos() - frameGeometry().topLeft();
         event->accept();
    }
    if (event->button() == Qt::RightButton)
    {
         close();
    }
}

void ShapeWidget::mouseMoveEvent(QMouseEvent * event)
{
    if (event->buttons() & Qt::LeftButton)
    {
         move(event->globalPos() - dragPosition);
         event->accept();
    }
}

void ShapeWidget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.drawPixmap(0,0,QPixmap(":/images/tux.png"));  
}
离线faholiang
只看该作者 2楼 发表于: 2010-02-08
呵呵。hope_yh,谢谢你的帮忙,不过我不要需要画一个不规则的图形,
我要的是一个时钟,能动的时钟,上面的时钟跟分钟是算出来的。
规则的会算,不规则的咋算呢?每个分钟分多少份不知道哎
离线watera
只看该作者 3楼 发表于: 2010-02-13
用OpenGL,先在平面上作图,再在空间内旋转
快速回复
限100 字节
 
上一个 下一个