Qt QChart标题背景
Qt QChart title background
有人知道如何使 QChart 看起来像下图吗?
我创建了条形 QBarChart 并设置了它的背景颜色和条形颜色并删除了轴号,但我不知道如何将图表的标题设置成这样。
如何让标题的背景颜色和QChart一样宽?
我按照 Spinkoo 的建议做了。
在 MainWindow 构造函数中创建了 QLabel,并创建了用于将 QLabel 放置在 QChart 上的函数。该函数必须在 MainWindow 的构造函数之后调用,因为这样小部件和布局的所有大小和位置都是已知的。该函数在 MainWindow 的构造函数之后以及每次发生 Resize 事件时调用。
void MainWindow::positionLabel()
{
// ui->widget inside which is QChart
// ui->verticalLayout inside which is ui->widget
QPoint pos = ui->widget->pos() + ui->verticalLayout->geometry().topLeft();
// m_title pointer to QLabel which is created inside constructor
m_title->setGeometry(pos.x() + 10, pos.y() + 20, ui->widget->width() - 20, CHART_TITLE_SIZE * 2.2);
this->repaint();
return;
}
这几乎是一个变通解决方案,可能应该有一种创建自定义 QChart class 的方法,它的外观与问题中的图表相同。所以,如果有人知道如何做到这一点,我将不胜感激。
有人知道如何使 QChart 看起来像下图吗?
我创建了条形 QBarChart 并设置了它的背景颜色和条形颜色并删除了轴号,但我不知道如何将图表的标题设置成这样。
如何让标题的背景颜色和QChart一样宽?
我按照 Spinkoo 的建议做了。
在 MainWindow 构造函数中创建了 QLabel,并创建了用于将 QLabel 放置在 QChart 上的函数。该函数必须在 MainWindow 的构造函数之后调用,因为这样小部件和布局的所有大小和位置都是已知的。该函数在 MainWindow 的构造函数之后以及每次发生 Resize 事件时调用。
void MainWindow::positionLabel()
{
// ui->widget inside which is QChart
// ui->verticalLayout inside which is ui->widget
QPoint pos = ui->widget->pos() + ui->verticalLayout->geometry().topLeft();
// m_title pointer to QLabel which is created inside constructor
m_title->setGeometry(pos.x() + 10, pos.y() + 20, ui->widget->width() - 20, CHART_TITLE_SIZE * 2.2);
this->repaint();
return;
}
这几乎是一个变通解决方案,可能应该有一种创建自定义 QChart class 的方法,它的外观与问题中的图表相同。所以,如果有人知道如何做到这一点,我将不胜感激。