QT PySide6 support for unreal engine 5 (likely works in unreal 4)
- prevent widget from instantly dissapearing due to garbage collection
- automatically style all Qt widgets using Xingyu Lei's unreal_stylesheet
- dark window bar for a better visual match with Unreal
- parent widget to Unreal's main window to stay on top
- Copy the
unreal_qt
folder to Unreal's Python path. e.g.
- project
D:\Unreal Projects\MyProject\Content\Python\Lib
- or editor
D:\Program Files\Epic Games\UE_5.4\Engine\Binaries\ThirdParty\Python3\Win64\Lib\site-packages
- Run the setup code on Unreal startup, e.g. with a plugin or
init_unreal.py
file. see docs
this guide assumes you have PySide2 installed already!
- Add the unreal_qt folder in your python path. See unreal docs
- Use the following code snippet to create
sample.py
and add it to unreal python path.
# 1. SETUP - this step can automatically run on editor startup when added to your init_unreal.py
import unreal_qt
unreal_qt.setup()
# 2. CREATE WIDGET - create your qt widget
# every widget you make after setup won't block the editor & have unreal styling
from PySide6.QtWidgets import QLabel, QWidget, QVBoxLayout
w = QWidget()
layout = QVBoxLayout()
w.setLayout(layout)
layout.addWidget(QLabel("Hello World!"))
# 3. WRAP WIDGET - (optional) manage garbage collection, add darkbar, stay on top
unreal_qt.wrap(w)
# 4. SHOW WIDGET - if using stay on top this needs to run after the wrap stage
w.show()
- import script in unreal with the Python terminal to run it.
import sample
Dark title bar
The windows bar is by default white on Windows, and QT can't change the bar color.
With unreal_qt you can add a custom bar.
- default window bar & frame
- custom bar, no frame (no resize support!)
- custom bar, frame, no title bar (supports resize)
- tech-artists.org PySide and Unreal5 thread
- TODO unreal forums thread