我有一个运行在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);发布于 2012-07-25 23:06:32
我从来没有发现为什么它在我的上下文中不能真正工作(它似乎与嵌套的窗口小部件和对象有关),但我找到了一个类似于大锤方法的解决方案,但对我来说是有效的:
foreach(QObject *widget, qApp->allWidgets())
{
QScrollBar *scrollBar = dynamic_cast<QScrollBar*>(widget);
if(scrollBar)
{
scrollBar->setContextMenuPolicy(Qt::NoContextMenu);
}
}这将在启动时禁用整个应用程序中的滚动条(或其他对象,如果已修改)的上下文菜单。
https://stackoverflow.com/questions/11328929
复制相似问题