VNC QT Widget for Python using PyQt5
Project description
pyQVNCWidget
VNC Widget for Python using PyQt5
NOTE: This project is pretty much still in WiP status and I am struggling with the PIXEL_FORMAT.
So if someone knows a way to fix it or a better way of doing it in the first place, I would be happy about PRs ;)
How to install
pip3 install qvncwidget
TODO:
- Proper error handling
onFatalError
- support for more than just RAW and RGB32 PIXEL_FORMATs
- support for compression
- implement rfb 3.7 and 3.8
- implement local and remote clipboard
Examples (see /examples folder)
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from qvncwidget import QVNCWidget
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("QVNCWidget")
self.vnc = QVNCWidget(
parent=self,
host="127.0.0.1", port=5900,
password="1234"
)
self.setCentralWidget(self.vnc)
self.vnc.start()
app = QApplication(sys.argv)
window = Window()
#window.setFixedSize(800, 600)
window.resize(800, 600)
window.show()
sys.exit(app.exec_())
Example with key input (since 0.2.0)
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtGui import QKeyEvent
from qvncwidget import QVNCWidget
class Window(QMainWindow):
def __init__(self, app: QApplication):
super(Window, self).__init__()
self.app = app
self.initUI()
def initUI(self):
self.setWindowTitle("QVNCWidget")
self.vnc = QVNCWidget(
parent=self,
host="127.0.0.1", port=5900,
password="1234"
)
self.setCentralWidget(self.vnc)
self.vnc.start()
def keyPressEvent(self, ev: QKeyEvent):
self.vnc.onKeyPress.emit(ev)
def keyReleaseEvent(self, ev: QKeyEvent):
self.vnc.onKeyRelease.emit(ev)
app = QApplication(sys.argv)
window = Window(app)
window.resize(800, 600)
window.show()
sys.exit(app.exec_())
Example with key input and mouse tracking (since 0.2.3)
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtGui import QKeyEvent
from qvncwidget import QVNCWidget
class Window(QMainWindow):
def __init__(self, app: QApplication):
super(Window, self).__init__()
self.app = app
self.initUI()
def initUI(self):
self.setWindowTitle("QVNCWidget")
self.vnc = QVNCWidget(
parent=self,
host="127.0.0.1", port=5900,
password="1234",
mouseTracking=True
)
self.setCentralWidget(self.vnc)
self.vnc.onInitialResize.connect(self.resize)
self.vnc.start()
def keyPressEvent(self, ev: QKeyEvent):
self.vnc.onKeyPress.emit(ev)
def keyReleaseEvent(self, ev: QKeyEvent):
self.vnc.onKeyRelease.emit(ev)
app = QApplication(sys.argv)
window = Window(app)
window.resize(800, 600)
window.show()
sys.exit(app.exec_())
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
QVncWidget-0.2.3.tar.gz
(31.5 kB
view hashes)
Built Distribution
QVncWidget-0.2.3-py3-none-any.whl
(34.7 kB
view hashes)
Close
Hashes for QVncWidget-0.2.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78b8e3e6c93bd910b574c60c53ec7248febcd8d05a0f65f3f357aa83229e0540 |
|
MD5 | 1256e6a7f800c828d6ff9c49a6574cc3 |
|
BLAKE2b-256 | 0a5d5140e3027c2242443a5f729a15bed12aaa07499633b885ce2266afefb272 |