Q油漆工正在更新数据
QPainter updating data
我在更新绘图时遇到问题。我有两个文件:mainwindow.cpp和drawwidget.cpp。在mainwindow中,我加载了一个带有x,y点参数的文件。当我点击一个按钮时,我会选择其中的几个,并将其传递给drawwidget来绘制这些点。
为了了解它的工作原理,我暂时画了一个椭圆,并将"p"乘以大小。当我点击一个按钮时,"p"会改变值(我在QMessageBox中打印了它,以及它的不同值),但椭圆的大小仍然相同。我做错了什么?
DrawWidget::DrawWidget(QWidget *parent) :
QWidget(parent)
{
p=30;
}
void DrawWidget::paintEvent(QPaintEvent *)
{
QStyleOption opt;
opt.init(this);
QPainter painter(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
painter.setRenderHint(QPainter::Antialiasing);
paint(painter);
}
void DrawWidget::paint(QPainter &painter)
{
painter.drawEllipse( QRect( 1*p-5, 5*p-5, 10, 10 ) );
}
void DrawWidget::handleData(sPunkt *&Tab_pkt)
{
p=Array[0].x;
update();
}
您需要update()
您的小部件,以便触发QPaintEvent
和对paintEvent()
的后续调用。
绘制事件是重新绘制小部件的全部或部分的请求。它可以由于以下原因之一:
- 重新绘制()或更新()被调用
- 该小部件被遮挡,现在已被打开,或者
- 许多其他原因
参见文档:QWidget::paintEvent()
相关文章:
- 如何在ECS框架中更新组件数据和通知系统
- 在 1 个服务器 n 客户端套接字 C++ MFC 应用程序中更新数据的客户端
- LLVM:在运行时更新数据结构
- 类的成员数据未更新
- 使用二进制数据更新 PostgreSQL 表
- QTableView 不会更新数据
- 有没有办法有效地更新QML中的CAN数据?
- 如何使用C++删除/更新txt文件中的特定数据
- 如何使用C++删除/更新txt文件中的特定数据?
- 比较 JSON::Value 变量中的数据,然后更新到文件
- 如何自动更新表格数据或数据库
- 如何在线程中更新qcustomplot数据
- 从高度动态的C 数据模型中更新QML:计时器与属性绑定
- 随着C 的数据更改,更新本地Qlabel的文本
- 从二进制文件C++更新数据
- Q油漆工正在更新数据
- 在具有多个视图的 QML 中查看、编辑和更新数据(来自C++),而数据保留在C++(订阅数据)中
- OpenACC 存在子句更新数据
- matlab编译器:更新数据到图形窗口
- 编辑和更新数据的特定行/列的csv文件MFC