本文已参与「新人创作礼」活动,一起开启掘金创作之路。
为什么需要?
在尝试Mac系统vcpkg中安装qt5失败之后,考虑到用docker安装Ubuntu,能不能在docker中运行GUI程序呢?
没有做不到,只有想不到。
如何实现?
GitHub - fcwu/docker-ubuntu-vnc-desktop: A Docker image to provide web VNC interface to access Ubuntu LXDE/LxQT desktop environment.
sudo docker run --name ubvnc -p 6080:80 -p 5900:5900 dorowu/ubuntu-desktop-lxde-vnc:bionic visit: http://127.0.0.1:6080/#/ which runs a noVNC more limited JavaScript VNC client
run:
sudo apt-get install tigervnc-viewer xtigervncviewer :5900
改进
还是docker-compose.yml方便
version: '3.3' services: ubuntu-desktop-lxde-vnc: container_name: ubvnc ports: - '6080:80' - '5901:5900' - '8888-8898:8888-8898' volumes: - './:/root' - '/dev/shm:/dev/shm' environment: - HTTP_PASSWORD=password - VNC_PASSWORD=password - RESOLUTION=1600x900 image: 'dorowu/ubuntu-desktop-lxde-vnc:bionic' docker-compose up -d
结果1 浏览器访问
结果2 vnc viewer访问(推荐)
应用:运行GUI程序
build-system.fman.io/pyqt5-tutor…
Test1
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
app = QApplication([])
window = QWidget()
layout = QVBoxLayout()
layout.addWidget(QPushButton('Top'))
layout.addWidget(QPushButton('Bottom'))
window.setLayout(layout)
window.show()
app.exec()
Test1 结果
Test2 Custom colors
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPalette
from PyQt5.QtWidgets import QApplication, QPushButton
app = QApplication([])
app.setStyle('Fusion')
palette = QPalette()
palette.setColor(QPalette.ButtonText, Qt.red)
app.setPalette(palette)
button = QPushButton('Hello World')
button.show()