我想在代码中压制未处理的参数警告。
我的第一个方法是:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *UNUSED(event))
{
MousebuttonHold = false;
updateGL();
return;
}
其中的定义如下:
#define UNUSED(NAME) USE_IT(NAME)
#define USE_IT(NAME) UNUSED_ ## NAME
这不起作用。经过一些SO研究后,我发现用C ++我可以做到:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent)
{/*...*/}
这完全解决了警告的问题,但现在....
mouseReleaseEvent()
根本不会被触发。
所以这也不适合我。
那么我有什么方法可以使用代码变体来抑制警告?
答案 0 :(得分:9)
解决方案#1 - 未命名的参数:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *)
解决方案#2 - Qt Q_UNUSED
宏:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
Q_UNUSED(event)
// Your code...
}
实际上,这个宏是下一个方法的 define :
解决方案#3 - C方式:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
(void)event;
// Your code...
}
答案 1 :(得分:4)
这是因为QWidget::mouseReleaseEvent的参数是一个指针。你必须保留*:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent*)
{
// Your code
}