How to insert QChartView in form with Qt Designer?

2019-01-26 08:14发布

问题:

I want to add QChart to the form. But I can't find it in the Widget Box. So I created it in the code. How can I insert it in QWidget or QFrame or something else?

I want to set area of that widget in QtDesigner.

回答1:

Option 1: Promoted

I suppose you mean inserting a QChartView, because QChartView inherits from QGraphicsView, this would be a good option, for this we do the following:

  1. first add QT += charts in the .pro
  2. place the QGraphicsView to the design.
  3. Right click on the QGraphicsView and select Promote to...
  4. When doing the above, a menu appears, in the menu it should be set in QChartView in Promoted Class Name, and QtCharts in Header file, then press the add button and finally press promote.

Screenshots of some steps:

[3.]

[4.1]

[4.2]

The same could be done using QWidget as a base instead of QGraphicsView.

Why is one or another widget chosen as a base?

It is chosen because Qt Designer through moc establishes certain properties by default, and if the widget does not have that method then it will not compile. as all widgets inherit from QWidget this would be the basis for any new widget to promote it in Qt Designer.

In the following link you will find an example.


Option 2: QtChart plugin

Another option would be to compile the QtChart plugin for QtDesigner, for it you must download the 5 files from the following link:

Then you execute the following:

qmake
make
sudo make install

At the end you can access QtCharts::QChartView in Qt Designer