我现在在 mainwindow 的 ui 里面用 designer 拖进去了一个 QGraphicsView
然后我把这个 QGraphicsView 提升成了 QChartView
然后我在 mainwindows.cpp 里面创建了一个全局的 QChart 和 QChartView
auto chart = new QChart;
auto chartView = new QChartView(chart);
那么我怎么才能把我自己定义的 chart 在 ui 界面上面显示出来呢?
1
hanleisky 2020-12-24 10:24:57 +08:00 1
1. 有那么一小种情况是你想用界面提升的 CharView 去显示你自己创建的 chart,那么,把你的代码改成
```cpp auto chart = new QChart; ui->graphicsView->setChart(chart); ``` 1. 那另外一种就是你确实想再增加一个 QChartView,那么,在 ui 里面找个合适的布局,塞进去就可以了 ```cpp auto chart = new QChart; auto chartView = new QChartView(chart); ui->whateverLayout->addWidget(charView); ``` 就好了 |
2
imn1 2020-12-24 10:34:27 +08:00 1
我只懂 pyqt,C++的不懂,不过控件都一样的
你要么只用 designer,要么只用代码,两个混用要有一定的熟悉程度 主程序一般设好 app,引入 mainwindow,app 绑定 mainwindows 就行了,不必再设控件 逻辑就是,app 绑定一个且唯一一个 mainwindows,然后所有控件都在这个 mainwindows 呈现 main 只控制 app 的启动和结束,包括这两个动作的额外操作,例如启动前读入 config 改变 mainwindow 的传入参数,结束时保存 config,诸如此类 |
3
imn1 2020-12-24 10:48:40 +08:00 1
另外,关于自定义控件
pyqt 是自定义一个类,继承 qt 的预设控件,然后 mainwindow 直接就用这个自定义类就可以了,不需要再添加那个预设控件 我看 qt 的例程( C++)也是这样写的,差不多(应该说 pyqt 跟 Qt 差不多才对) class CustomChar(QChartView): .... mychar = CustomChar() mainwindow.addWidget(mychar) |
4
hszz3 2020-12-25 10:07:17 +08:00
设置父组件或者加到布局里。
|