如何解决 Qt 应用程序的图形问题? (dolphin:14635):Gdk-警告 **:shmget 失败:错误 28(设备上没有剩余空间)

如何解决 Qt 应用程序的图形问题? (dolphin:14635):Gdk-警告 **:shmget 失败:错误 28(设备上没有剩余空间)

我使用的是 Linux Mint 17.2 Rafaela(即 Ubuntu 14.04),QT升级后所有基于我的应用程序都很难看(文本混乱,菜单内容消失,参见下面的屏幕截图)。

环境

$ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description:    Linux Mint 17.2 Rafaela
Release:        17.2
Codename:       rafaela
  • 关键DE:4.14.2
  • 海豚:4.14.2

错误

$ dolphin
Object::connect: No such signal org::freedesktop::UPower::DeviceAdded(QDBusObjectPath)
Object::connect: No such signal org::freedesktop::UPower::DeviceRemoved(QDBusObjectPath)
QNativeImage: Unable to attach to shared memory segment.

(dolphin:14220): Gdk-WARNING **: shmget failed: error 28 (No space left on device)
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
  Major opcode: 62 (X_CopyArea)
  Resource id:  0x0
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
  Major opcode: 62 (X_CopyArea)
  Resource id:  0x0
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
  Major opcode: 62 (X_CopyArea)
  Resource id:  0x0

(dolphin:14220): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed

(dolphin:14220): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed

我有类似的问题:

  • smplayer,
  • vlc,`
  • digikam
  • 和其他qt基于的应用程序

截屏

海豚qt视觉错误

有关的

答案1

我测试了答案升级到Ubuntu 15.10 Wily并获取QNativeImage:无法附加共享内存段使用以下命令:

QT_GRAPHICSSYSTEM=native dolphin

它有效! UI 不再有错误。

永久解决方案

解决方案参考来自上述问题,编辑/etc/environment添加:

QT_GRAPHICSSYSTEM=native

可能的值为nativerasteropengl

答案2

我在这里找到了该问题的其他解决方案:

QNativeImage:无法附加到 KDE QT 应用程序上的共享内存段

最后我可以通过禁用 MITSHM lib 来解决这个问题。

这可以通过向文件添加以下行来完成~/.profile。 (IE:system env var

QT_X11_NO_MITSHM=1

相关内容