当前位置: 代码迷 >> QT开发 >> 有没有画圆的控件解决办法
  详细解决方案

有没有画圆的控件解决办法

热度:109   发布时间:2016-04-25 03:26:29.0
有没有画圆的控件
就像这个绿色的圆圈

在ui设计页面里,我没找到画圆圈的控件
不知道Qt提供的有没有这样的控件,
用过的告知一下
------解决方案--------------------
 QRectF rectangle(10.0, 20.0, 80.0, 60.0);
 QPainter painter(this);
 painter.drawEllipse(rectangle);
这样可以画一个圆。
------解决方案--------------------
引用:
Quote: 引用:

 QRectF rectangle(10.0, 20.0, 80.0, 60.0);
 QPainter painter(this);
 painter.drawEllipse(rectangle);
这样可以画一个圆。

怎么把这个圆放到界面上啊?
创建后,我想把它显示出来。


对应你的界面重写paintEvent方法

void PaintedWidget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.drawLine(80,100,650,500);//直线:(80,100)到(650,500)
    painter.setPen(Qt::red);//画笔颜色改为红色
    painter.drawRect(10,10,100,400);//矩形:(10,10)开始100长400宽
    painter.setPen(QPen(Qt::green,5));//画笔改为绿色5像素
    painter.setBrush(Qt::blue);//填充颜色
    painter.drawEllipse(50,150,400,200);//椭圆drawEllipse(int x, int y, int width, int height)
}

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

 QRectF rectangle(10.0, 20.0, 80.0, 60.0);
 QPainter painter(this);
 painter.drawEllipse(rectangle);
这样可以画一个圆。

怎么把这个圆放到界面上啊?
创建后,我想把它显示出来。

对应你的界面重写paintEvent方法

void PaintedWidget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.drawLine(80,100,650,500);//直线:(80,100)到(650,500)
    painter.setPen(Qt::red);//画笔颜色改为红色
    painter.drawRect(10,10,100,400);//矩形:(10,10)开始100长400宽
    painter.setPen(QPen(Qt::green,5));//画笔改为绿色5像素
    painter.setBrush(Qt::blue);//填充颜色
    painter.drawEllipse(50,150,400,200);//椭圆drawEllipse(int x, int y, int width, int height)
}

嗯,这个方法可行,请问这个事件是什么时候响应的啊?
如果我有时不想让它显示出来,怎么办呢?


这个具体我也不能准确的说出来,反正就是你每次对这个控件有影响都会执行一次,具体你可以用qDebug输出一下看看,如果不想输出的话可以在外面加个if判断,不满足条件就不输出
  相关解决方案