QDockWidget showFullscreen不工作在Ubuntu (gnome)
QDockWidget showFullscreen not working on Ubuntu (gnome)
我试图把一个浮动(未停靠)QDockWidget进入全屏模式。在Windows上,一切似乎都很简单。例如,我将dockwidget (dw)的topLevelChanged()信号连接到自定义插槽floatingChanged()
connect(dw, SIGNAL(topLevelChanged(bool)), this, SLOT(floatingChanged(bool)));
slot内i检查:如果dw是浮动的,调用dw->showFullscreen()。
void MainWindow::floatingChanged(bool floating)
{
if( floating )
{
QDockWidget* dw = static_cast<QDockWidget*>(QObject::sender());
dw->showFullScreen();
}
}
在windows中,未停靠(浮动)的QDockWidget在停靠后直接切换到全屏模式。但在linux (ubuntu 12.04, gnome-shell 3.4.1)下,这不起作用(qt 4.8.0)。dock小部件保持在正常模式。
我不知道如何切换(浮动)QDockWidget进入全屏模式。我们非常欢迎任何解决方案。事实上,不同的操作系统在这方面的表现是不同的。
我已经在网上搜索了没有成功,所以这是我在这里的第一个帖子。请原谅我的拼写错误,我不是英语母语者,谢谢;)
注。我也要试试雄狮的行为。顺便说一下:要尝试一下,只需在Qt示例http://qt-project.org/doc/qt-5.0/qtwidgets/mainwindows-mainwindow.html的主窗口中实现上面显示的floatingChanged()插槽,并将其与任何现有的dockwidgets或MainWindow::createDockWidget()方法连接。
调用showFullScreen()
函数只影响windows。
全屏模式在Windows下工作良好,但在x下有某些问题。这些问题是由于指定X11客户机与窗口管理器之间通信的ICCCM协议的限制。ICCCM根本不理解无装饰全屏窗口的概念。因此,我们能做的最好的事情就是请求一个无边界窗口,并将其放置和调整大小以填充整个屏幕。根据窗口管理器的不同,这可能起作用,也可能不起作用。使用MOTIF提示请求无边界窗口,几乎所有现代窗口管理器都至少部分支持。另一种方法是完全绕过窗口管理器,并使用Qt::X11BypassWindowManagerHint标志创建一个窗口。但这也有其他严重的问题,比如键盘焦点完全损坏,桌面变化或用户打开其他窗口时的效果非常奇怪。遵循现代后icccm规范的X11窗口管理器正确支持全屏模式。
- 在Ubuntu 16.04上安装Cilk时出现问题
- 如何在Ubuntu中使用cmake设置qt4
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- 无法将 GLFW 库与 Ubuntu 18.04 上的头文件链接
- 无法在Ubuntu上将共享库与Eclipse链接
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- 无法安装 R 包 "nloptr"(Ubuntu 16.04 上的 R3.6.2) - C++编译器问题
- 使用 ubuntu 终端在 c++ 上运行线程类的问题
- 如何在 Ubuntu 上安装 OpenCV for C/C++
- 估计 Ubuntu C++内存使用情况
- 在 Ubuntu 中创建自动安装程序
- 分段 Linux Ubuntu 中的 g++ 错误,但在 Windows 中的 g++/MingW 中,在 C++ 中打
- OpenGL 在 VMWare Fusion 版本 10.1.3 上安装的虚拟机 (Ubuntu 16.04) 上崩溃
- 在 ubuntu 上安装 node js pulsar 客户端
- 在 Ubuntu 18.04 上编译 GLSL 着色器时"不支持 GLSL 3.30"?
- 这是 ubuntu 16.04 中的 gdb 错误吗?
- 生成文件:6:目标'all'的配方在 Ubuntu-16.04 上失败
- LinuxdeployQT 今天如何创建 Appimage,自 ubuntu 16.04 发布以来,它可以在每个 Lin
- 在 Ubuntu 服务器上运行 QT 应用程序时崩溃
- QDockWidget showFullscreen不工作在Ubuntu (gnome)