Qt 纯小白求教

2020-12-24 09:41:35 +08:00
 movq

我现在在 mainwindow 的 ui 里面用 designer 拖进去了一个 QGraphicsView

然后我把这个 QGraphicsView 提升成了 QChartView

然后我在 mainwindows.cpp 里面创建了一个全局的 QChart 和 QChartView

auto chart  = new QChart;
auto chartView = new QChartView(chart);

那么我怎么才能把我自己定义的 chart 在 ui 界面上面显示出来呢?

2200 次点击
所在节点    Qt
4 条回复
hanleisky
2020-12-24 10:24:57 +08:00
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);
```
就好了
imn1
2020-12-24 10:34:27 +08:00
我只懂 pyqt,C++的不懂,不过控件都一样的

你要么只用 designer,要么只用代码,两个混用要有一定的熟悉程度

主程序一般设好 app,引入 mainwindow,app 绑定 mainwindows 就行了,不必再设控件
逻辑就是,app 绑定一个且唯一一个 mainwindows,然后所有控件都在这个 mainwindows 呈现
main 只控制 app 的启动和结束,包括这两个动作的额外操作,例如启动前读入 config 改变 mainwindow 的传入参数,结束时保存 config,诸如此类
imn1
2020-12-24 10:48:40 +08:00
另外,关于自定义控件
pyqt 是自定义一个类,继承 qt 的预设控件,然后 mainwindow 直接就用这个自定义类就可以了,不需要再添加那个预设控件
我看 qt 的例程( C++)也是这样写的,差不多(应该说 pyqt 跟 Qt 差不多才对)


class CustomChar(QChartView):
....

mychar = CustomChar()

mainwindow.addWidget(mychar)
hszz3
2020-12-25 10:07:17 +08:00
设置父组件或者加到布局里。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/738466

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX