我在Windows XP机器上运行了一个Qt应用程序,我试图最终禁用右键单击滚动条时弹出的上下文菜单(“向下滚动”和“向上翻页”等。 )在这个应用程序内。
我尝试了以下不起作用的事情:
ui->scrollArea->setContextMenuPolicy(Qt::NoContextMenu);
ui->scrollAreaWidgetContents->setContextMenuPolicy(Qt::NoContextMenu);
ui->scrollArea->horizontalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu);
ui->scrollArea->setContextMenuPolicy(Qt::PreventContextMenu);
ui->scrollAreaWidgetContents->setContextMenuPolicy(Qt::PreventContextMenu);
ui->scrollArea->horizontalScrollBar()->setContextMenuPolicy(Qt::PreventContextMenu);
答案 0 :(得分:0)
我从来没有发现为什么它在我的上下文中没有真正起作用(它似乎与嵌套的小部件和对象有关)但我找到了一个类似于大锤方法的解决方案,但对我有用: / p>
foreach(QObject *widget, qApp->allWidgets())
{
QScrollBar *scrollBar = dynamic_cast<QScrollBar*>(widget);
if(scrollBar)
{
scrollBar->setContextMenuPolicy(Qt::NoContextMenu);
}
}
这会在启动时禁用整个应用程序中滚动条(或修改后的其他对象)的上下文菜单。