如何在饼图的每个切片中居中显示文本?

时间:2018-07-17 15:26:51

标签: c++ qt

我想使文本标签(百分比)在每个饼图切片中居中。目前,它对其中两个象限都起作用:

screenshot

我在做什么错了?

driver.wait(webdriver.until.elementLocated(webdriver.By.id(LocatorValue)),20000)
.then(()=>{
   return driver.findElement(webdriver.By.id('test'));
}).then((element)=>{
    // Perform any operation what you to do.
      return element.click();
}).catch(()=>{
     console.log('Element not found');
})

1 个答案:

答案 0 :(得分:0)

在这一行:

painter.drawText(this->width()/4,this->height(), QString::number(percent*100)+"%");

您似乎每次都在同一位置绘制百分比。您确实已成功绘制了每个部分的百分比,它们每次都被绘制在同一位置。尝试将其更改为此:

painter.drawText(double(i + 1) * this->width()/4,this->height(), QString::number(percent*100)+"%");

然后您会明白我的意思。通过将x值乘以某个变化的值,每个绘制的文本的x位置都将发生变化,因此您将能够看到绘制的不同百分比。

如果您希望它在每个象限中绘制,那么您的代码可能看起来像这样:

# define PI           3.14159265358979323846

...

double draw_x = this->width / 2.0 + cos(PI * (end_angle / 180.0 - angle / 360.0)) * this->width / 4.0;
double draw_y = this->height / 2.0 - sin(PI * (end_angle / 180.0 - angle / 360.0)) * this->width / 4.0;
painter.drawText(draw_x, draw_y, QString::number(percent*100)+"%");

基本上,以上代码中发生的事情是我正在计算每个切片中间的x和y坐标。然后,我在这些位置上绘制百分比。