Qt全屏后无法响应contextMenuEvent()事件

熊猫呀 2018-01-22 12:11:26
如题
在使用 w.showFullScreen(); 右键菜单无效。
使用 w.showMaximized(); 功能正常.
为什么呢? 难道全屏后 影响事件的传递了?
谢谢
...全文
535 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyangqingyun 2019-04-17
  • 打赏
  • 举报
回复
确实存在这个BUG,目前官方还没有解决。
我已经解决了,思路就是设置窗体大小往上移动一个像素,这样既保持了全屏的效果,又没有右键菜单弹不出来的烦恼。
//全屏+QWebEngineView控件一起会产生右键菜单无法弹出的BUG,需要上移一个像素
QRect rect = qApp->desktop()->geometry();
rect.setY(-1);
rect.setHeight(rect.height());
this->setGeometry(rect);
Little柯南 2018-01-24
  • 打赏
  • 举报
回复
换5.9.4吧或者5.10也行
熊猫呀 2018-01-22
  • 打赏
  • 举报
回复
研究了下 这个 是 QWebEngineView 这个原因。当我用的是qt5.6 估计是qt 还没有支持好。结贴了
熊猫呀 2018-01-22
  • 打赏
  • 举报
回复
给你看下我的代码 class Mywebview: public QWebEngineView { Q_OBJECT public: explicit Mywebview(QWidget *parent = 0); protected: void contextMenuEvent(QContextMenuEvent *event); void keyPressEvent(QKeyEvent *event); bool event(QEvent *event); private: QMenu * m_meun; QAction * m_action; }; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); m_menu = new QMenu(this); m_closeAction = new QAction(QString("close"),this); connect(m_closeAction,SIGNAL(triggered(bool)),this,SLOT(close())); m_menu->addAction(m_closeAction); m_view = new Mywebview(ui->centralWidget); // m_brower = new QTextBrowser(ui->centralWidget); QHBoxLayout * layout = new QHBoxLayout; layout->addWidget(m_view); // layout->addWidget(m_brower); // layout->setContentsMargins(0,0,0,0); ui->centralWidget->setLayout(layout); } MainWindow w; // w.show(); w.showFullScreen(); 这时候 就无法响应右键菜单了,我在webview 和 mainwindow 都重写了邮件菜单的事件。
Little柯南 2018-01-22
  • 打赏
  • 举报
回复
按照这个试试,看那你的情况: this->setWindowState(Qt::WindowFullScreen);//窗口全屏 我确定,我的这边全屏右键有菜单

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧