如何在docker中运行qt gui?
我尝试了几种解决方案,但不可避免地遇到以下错误:如何在docker中运行qt gui?,docker,qt,qt5,alpine,Docker,Qt,Qt5,Alpine,我尝试了几种解决方案,但不可避免地遇到以下错误: $ QT_GRAPHICSSYSTEM="native" sudo docker run -it --privileged -e DISPLAY=$DISPLAY -e QT_GRAPHICSSYSTEM="native" -e QT_X11_NO_MITSHM=1 -v /dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix:rw qt-alpine QFactoryLoad
$ QT_GRAPHICSSYSTEM="native" sudo docker run -it --privileged -e DISPLAY=$DISPLAY -e QT_GRAPHICSSYSTEM="native" -e QT_X11_NO_MITSHM=1 -v /dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix:rw qt-alpine
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/platforms/libqeglfs.so"
Found metadata in lib /usr/lib/qt5/plugins/platforms/libqeglfs.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"eglfs"
]
},
"archreq": 0,
"className": "QEglFSIntegrationPlugin",
"debug": false,
"version": 331264
}
Got keys from plugin meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/platforms/libqlinuxfb.so"
Found metadata in lib /usr/lib/qt5/plugins/platforms/libqlinuxfb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"linuxfb"
]
},
"archreq": 0,
"className": "QLinuxFbIntegrationPlugin",
"debug": false,
"version": 331264
}
Got keys from plugin meta data ("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/platforms/libqminimal.so"
Found metadata in lib /usr/lib/qt5/plugins/platforms/libqminimal.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"minimal"
]
},
"archreq": 0,
"className": "QMinimalIntegrationPlugin",
"debug": false,
"version": 331264
}
Got keys from plugin meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/platforms/libqminimalegl.so"
Found metadata in lib /usr/lib/qt5/plugins/platforms/libqminimalegl.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"minimalegl"
]
},
"archreq": 0,
"className": "QMinimalEglIntegrationPlugin",
"debug": false,
"version": 331264
}
Got keys from plugin meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/platforms/libqoffscreen.so"
Found metadata in lib /usr/lib/qt5/plugins/platforms/libqoffscreen.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"offscreen"
]
},
"archreq": 0,
"className": "QOffscreenIntegrationPlugin",
"debug": false,
"version": 331264
}
Got keys from plugin meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/platforms/libqvnc.so"
Found metadata in lib /usr/lib/qt5/plugins/platforms/libqvnc.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"vnc"
]
},
"archreq": 0,
"className": "QVncIntegrationPlugin",
"debug": false,
"version": 331264
}
Got keys from plugin meta data ("vnc")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5/plugins/platforms/libqxcb.so"
Found metadata in lib /usr/lib/qt5/plugins/platforms/libqxcb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"xcb"
]
},
"archreq": 0,
"className": "QXcbIntegrationPlugin",
"debug": false,
"version": 331264
}
Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/app/simple-qml/platforms" ...
loaded library "/usr/lib/qt5/plugins/platforms/libqxcb.so"
No protocol specified
qt.qpa.xcb: could not connect to display :1
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
主机系统:Ubuntu20.04和nvidia
Dockerfile:
FROM alpine:latest
RUN apk update && apk add --no-cache qt5-qtbase-dev qt5-qttools qt5-qt3d-dev g++ cmake make
WORKDIR /app
COPY . .
RUN qmake-qt5 && make
CMD ["sh", "-c", "QT_DEBUG_PLUGINS=1 QT_GRAPHICSSYSTEM=native /app/simple-qml/simple-qml"]
我只是想利用
qt5.15
和3detras
等功能。在qml
中提供支持。因此,这些文件只是目录中qt3d5 examples
中的示例。所以实际上,这些文件并不重要,我只是在尝试建立运行qt
-opengl
-app indocker
在您的host@eyllanesc哇!取得了一些进展!但是我有以下错误:``Qt3D.Renderer.Backend:bool Qt3DRender::Render::GraphicsContext::makeCurrent(QSurface*)makeCurrent未能将上下文设置为当前上下文:OpenGL资源不会被销毁``请在host@eyllanesc哇!取得了一些进展!但是我有以下错误:``Qt3D.Renderer.Backend:bool Qt3DRender::Render::GraphicsContext::makeCurrent(QSurface*)makeCurrent未能将上下文设置为当前上下文:OpenGL资源将不会被销毁```