永发信息网

打算用QT编写一个仪表盘,画了指针和外框,现在想让指针0.1秒摆动10度,为何用以下语句无法实现?

答案:2  悬赏:0  手机版
解决时间 2021-02-08 00:47
#include "dialog.h"
#include "ui_dialog.h"
#include
#include

Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
resize(600,500);
pix = QPixmap(600,500);
pix.fill(Qt::black);
a=0;
QTimer *timer = new QTimer(this);
//新建定时器
connect(timer,SIGNAL(timeout()),this,SLOT(paintEvent()));
//关联定时器计满信号和相应的槽函数
timer->start(1000);

}

Dialog::~Dialog()
{
delete ui;
}

void Dialog::paintEvent(QPaintEvent *)
{

QPainter pp(&pix);
QRectF rectangle(100.0, 100.0, 400.0, 400.0); //矩形
int startAngle = 0 * 16; //起始角度
int spanAngle = 180 * 16; //跨越度数
QPainter painter(this);
painter.drawPixmap(0,0,pix);
painter.setPen(QPen(Qt::white,5,Qt::DotLine));
painter.drawArc(rectangle, startAngle, spanAngle);
painter.setRenderHint(QPainter::Antialiasing,true);
static const QPointF points[4] = {
QPointF(100.0, 300.0),
QPointF(260.0, 290.0),
QPointF(300.0, 300.0),
QPointF(260.0, 310.0)
};
QLinearGradient linearGradient(100,300,300,300);
linearGradient.setColorAt(0,Qt::green);
linearGradient.setColorAt(1,Qt::white);
painter.setBrush(linearGradient);
painter.setPen(QPen(Qt::black,Qt::SolidLine));
painter.translate(300,300);//以指针根部为旋转中心(移动原点)
painter.rotate(a);
painter.translate(-300,-300);//恢复原点
painter.drawPolygon(points, 4);
a=a+10;

}
最佳答案
把定时器的槽函数换成update()就可以了
全部回答
你说呢...
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
永雄五金店这个地址在什么地方,我要处理点事
广州市白云区粤溪村粤溪北路由细义街,距离广
荣威550换刹车片要换传感器吗
233 网校如何得到它的帐号与密码
从王顶堤立交桥到王庆坨坐公交车怎么走??急
为什么我的车轮毂很容易发黑
辛夷入汤剂宜A.烊化B.冲服C.后下D.包煎E.先煎
汉阴县城市建设开发管理委员会拆迁安置办公室
穗森名门地址在什么地方,想过去办事
大众朗逸环境温度传感器信号错误
惠之家吉祥名都店这个地址在什么地方,我要处
根据我国刑法规定,我国国家工作人员在我国领
莱芜三路车多少元
当月开了正数发票和红字发票.那当月销售金额
矛是什么结构
推荐资讯
温馨港演歌厅地址在什么地方,我要处理点事
have serious doubts翻译
葡轩红酒怎么去啊,我要去那办事
中直系统公务员可以参加地方遴选吗
粉丝应援站里的美工部主要负责什么
甲醛泡火腿肠能毒死狗吗
168眼镜店在什么地方啊,我要过去处理事情
比亚迪速锐着不了车,显示请检查多媒体,怎么
wendousi7系统玩lolfps很低怎么办?
素描要学多久能成功入门
简影创意自拍摄影体验馆怎么去啊,我要去那办
石丽村在什么地方啊,我要过去处理事情
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?