C++ 使用QDraw-can'在Qt中绘图;未锁定图形并处于';没有最大化窗口就不能绘图
我在Xbuntu上使用Qt中的给定阻塞道路参数(使用QPainter)将模拟车辆从A点写入B点。我把代码上传到了C++ 使用QDraw-can'在Qt中绘图;未锁定图形并处于';没有最大化窗口就不能绘图,c++,qt,gcc,drawing,C++,Qt,Gcc,Drawing,我在Xbuntu上使用Qt中的给定阻塞道路参数(使用QPainter)将模拟车辆从A点写入B点。我把代码上传到了 如果不最大化窗口并恢复以前的大小,则不会绘制该窗口的板。如何修复它 是否可以锁定图形?因为总是执行paintEvent方法。 当我使用setUpdatesEnabled(false)时,主窗口被冻结 paintEvent方法: void main_window::paintEvent(QPaintEvent *event) { Q_UNUSED(eve
void main_window::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
try
{
if (!((this->new_city->get_size_field1() == -1) && (this->new_city->get_size_field2() == -1)))
{
int x = -1;
int y = -1;
ui->actionNew_simulation->setDisabled(true);
this->q = new QPainter (this);
this->new_city->draw_city(this->q);
this->set_car_button();
this->q->end();
}
}
catch (...)
{
//locked drawing
this->end_simulation();
}
}
感谢您的所有回答。使用Qt5.6尝试了github的代码,看到了网格和小型车,但没有最大化。顺便说一下,内存泄漏是因为main_window::q从未被删除。实际上,您甚至不需要有这个成员指针。只要做
QPainter p(这个);新建城市->绘制城市(&p)代码>谢谢你的回答。我已从主窗口加载项paintEvent方法中删除了QPaint。请不要在paintEvent
中进行任何计算。只做画画。您也不需要在堆上分配QPainter
,也不需要使用异常,也不需要调用painter的end
方法。