diff --git a/UI/frontend-plugins/frontend-tools/data/locale/en-US.ini b/UI/frontend-plugins/frontend-tools/data/locale/en-US.ini
index b43843591..46d8056d9 100644
--- a/UI/frontend-plugins/frontend-tools/data/locale/en-US.ini
+++ b/UI/frontend-plugins/frontend-tools/data/locale/en-US.ini
@@ -39,6 +39,8 @@ PythonSettings="Python Settings"
PythonSettings.PythonInstallPath32bit="Python Install Path (32bit)"
PythonSettings.PythonInstallPath64bit="Python Install Path (64bit)"
PythonSettings.BrowsePythonPath="Browse Python Path"
+PythonSettings.PythonVersion="Loaded Python Version: %1"
+PythonSettings.PythonNotLoaded="Python not currently loaded"
ScriptLogWindow="Script Log"
Description="Description"
ScriptDescriptionLink.Text="Open this link in your default web browser?"
diff --git a/UI/frontend-plugins/frontend-tools/forms/scripts.ui b/UI/frontend-plugins/frontend-tools/forms/scripts.ui
index ce8987c50..e07844cfa 100644
--- a/UI/frontend-plugins/frontend-tools/forms/scripts.ui
+++ b/UI/frontend-plugins/frontend-tools/forms/scripts.ui
@@ -268,6 +268,13 @@
+ -
+
+
+
+
+
+
-
diff --git a/UI/frontend-plugins/frontend-tools/scripts.cpp b/UI/frontend-plugins/frontend-tools/scripts.cpp
index 4c561de7d..66fbd4ef6 100644
--- a/UI/frontend-plugins/frontend-tools/scripts.cpp
+++ b/UI/frontend-plugins/frontend-tools/scripts.cpp
@@ -194,6 +194,7 @@ ScriptsTool::ScriptsTool() : QDialog(nullptr), ui(new Ui_ScriptsTool)
config_get_string(config, "Python", "Path" ARCH_NAME);
ui->pythonPath->setText(path);
ui->pythonPathLabel->setText(obs_module_text(PYTHONPATH_LABEL_TEXT));
+ updatePythonVersionLabel();
#else
delete ui->pythonSettingsTab;
ui->pythonSettingsTab = nullptr;
@@ -219,6 +220,20 @@ ScriptsTool::~ScriptsTool()
ui->scripts->currentRow());
}
+void ScriptsTool::updatePythonVersionLabel()
+{
+ QString label;
+ if (obs_scripting_python_loaded()) {
+ char version[8];
+ obs_scripting_python_version(version, sizeof(version));
+ label = QString(obs_module_text("PythonSettings.PythonVersion"))
+ .arg(version);
+ } else {
+ label = obs_module_text("PythonSettings.PythonNotLoaded");
+ }
+ ui->pythonVersionLabel->setText(label);
+}
+
void ScriptsTool::RemoveScript(const char *path)
{
for (size_t i = 0; i < scriptData->scripts.size(); i++) {
@@ -460,6 +475,8 @@ void ScriptsTool::on_pythonPathBrowse_clicked()
if (!obs_scripting_load_python(path))
return;
+ updatePythonVersionLabel();
+
for (OBSScript &script : scriptData->scripts) {
enum obs_script_lang lang = obs_script_get_lang(script);
if (lang == OBS_SCRIPT_LANG_PYTHON) {
diff --git a/UI/frontend-plugins/frontend-tools/scripts.hpp b/UI/frontend-plugins/frontend-tools/scripts.hpp
index 3ce5385ad..052145352 100644
--- a/UI/frontend-plugins/frontend-tools/scripts.hpp
+++ b/UI/frontend-plugins/frontend-tools/scripts.hpp
@@ -31,6 +31,8 @@ class ScriptsTool : public QDialog {
std::unique_ptr ui;
QWidget *propertiesView = nullptr;
+ void updatePythonVersionLabel();
+
public:
ScriptsTool();
~ScriptsTool();
diff --git a/deps/obs-scripting/obs-scripting-python.c b/deps/obs-scripting/obs-scripting-python.c
index 35f549938..124164ebd 100644
--- a/deps/obs-scripting/obs-scripting-python.c
+++ b/deps/obs-scripting/obs-scripting-python.c
@@ -1590,6 +1590,17 @@ bool obs_scripting_python_runtime_linked(void)
return (bool)RUNTIME_LINK;
}
+void obs_scripting_python_version(char *version, size_t version_length)
+{
+#if RUNTIME_LINK
+ snprintf(version, version_length, "%d.%d", python_version.major,
+ python_version.minor);
+#else
+ snprintf(version, version_length, "%d.%d", PY_MAJOR_VERSION,
+ PY_MINOR_VERSION);
+#endif
+}
+
bool obs_scripting_python_loaded(void)
{
return python_loaded;
diff --git a/deps/obs-scripting/obs-scripting.h b/deps/obs-scripting/obs-scripting.h
index 415c313e3..420c4b19a 100644
--- a/deps/obs-scripting/obs-scripting.h
+++ b/deps/obs-scripting/obs-scripting.h
@@ -46,6 +46,7 @@ EXPORT void obs_scripting_set_log_callback(scripting_log_handler_t handler,
void *param);
EXPORT bool obs_scripting_python_runtime_linked(void);
+EXPORT void obs_scripting_python_version(char *version, size_t version_length);
EXPORT bool obs_scripting_python_loaded(void);
EXPORT bool obs_scripting_load_python(const char *python_path);