Guide:Mod Organizer/Python Plugins: Difference between revisions
From Step Mods | Change The Game
m (Z929669 moved page Guide:Mod Organizer/PythonPlugins to Guide:Mod Organizer/Python Plugins) |
|||
(17 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Deprecated Guides]]{{TOC}} | |||
= | ==Requirements== | ||
* MS Windows and MO ^^ | |||
* python 2.7 programming language (32 Bit): https://www.python.org/download/releases/2.7.6/ | |||
** [https://www.python.org/ftp/python/2.7.6/python-2.7.6.msi direct link] | |||
===requirements for user interface (optional)=== | |||
* [https://download.qt-project.org/archive/qt/4.8/4.8.4/ Qt Framework] - includes the Qt Designer (creates .ui files) | |||
** [https://download.qt-project.org/archive/qt/4.8/4.8.4/qt-win-opensource-4.8.4-mingw.exe direct link (mingw version)] | |||
** an IDE (like VisualC, MinGw) is not necessary for this purpose and can be skipped during install | |||
* [https://www.riverbankcomputing.com/software/pyqt/download PyQt4] - dev files for Qt usage in python 2.7 | |||
** [https://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.10.3/PyQt4-4.10.3-gpl-Py2.7-Qt4.8.5-x32.exe direct link] | |||
PyQt4 comes with '''pyuic''' | |||
Location: Python27/Lib/site-packages/PyQt4/uic/pyuic.py | |||
it generates .py commands from a Qt4 .ui file: | |||
pyuic.py YOURDESIGN.ui > YOURDESIGN.py | |||
==Hello World app== | |||
still got a bug in there, but the source gives you an idea how a simple plugin will work: | |||
<pre> | |||
import os | |||
import sys | |||
from PyQt4 import QtCore, QtGui | |||
from PyQt4.QtCore import Qt, pyqtWrapperType, pyqtSlot, pyqtSignal | |||
from PyQt4.QtGui import QDialog, QHeaderView, QMessageBox, QColorDialog, QPalette, QTreeWidgetItem,/ | |||
QComboBox, QPushButton, QDoubleSpinBox, QHBoxLayout, QWidget, QSlider, QSpinBox, QLineEdit | |||
pyqt5 = False | |||
if not "mobase" in sys.modules: | |||
import mock_mobase as mobase | |||
== | class YourHelloWorldPlugin(mobase.IPluginTool): | ||
def init(self, organizer): | |||
#self.__organizer = organizer | |||
self.__parentWidget = None | |||
return True | |||
def name(self): | |||
return "HelloWorld" | |||
def author(self): | |||
return "plugin creator" | |||
def description(self): | |||
return "Hello World-Plugin to show you how it's done." | |||
def version(self): | |||
#return mobase.VersionInfo(0, 0, 1, mobase.ReleaseType.prealpha) | |||
return True | |||
def isActive(self): | |||
return True | |||
def settings(self): | |||
return [] | |||
def displayName(self): | |||
return "HelloWorld" | |||
def tooltip(self): | |||
return "Modify game Configuration" | |||
def createPlugin(): | |||
return YourHelloWorldPlugin() | |||
</pre> | |||
if you place a file with a similiar structure inside the /plugins/ dir, MO will automatically find it and add it to the tools list. |
Latest revision as of 03:33, January 2, 2023
Requirements
- MS Windows and MO ^^
- python 2.7 programming language (32 Bit): https://www.python.org/download/releases/2.7.6/
requirements for user interface (optional)
- Qt Framework - includes the Qt Designer (creates .ui files)
- direct link (mingw version)
- an IDE (like VisualC, MinGw) is not necessary for this purpose and can be skipped during install
- PyQt4 - dev files for Qt usage in python 2.7
PyQt4 comes with pyuic
Location: Python27/Lib/site-packages/PyQt4/uic/pyuic.py
it generates .py commands from a Qt4 .ui file:
pyuic.py YOURDESIGN.ui > YOURDESIGN.py
Hello World app
still got a bug in there, but the source gives you an idea how a simple plugin will work:
import os import sys from PyQt4 import QtCore, QtGui from PyQt4.QtCore import Qt, pyqtWrapperType, pyqtSlot, pyqtSignal from PyQt4.QtGui import QDialog, QHeaderView, QMessageBox, QColorDialog, QPalette, QTreeWidgetItem,/ QComboBox, QPushButton, QDoubleSpinBox, QHBoxLayout, QWidget, QSlider, QSpinBox, QLineEdit pyqt5 = False if not "mobase" in sys.modules: import mock_mobase as mobase class YourHelloWorldPlugin(mobase.IPluginTool): def init(self, organizer): #self.__organizer = organizer self.__parentWidget = None return True def name(self): return "HelloWorld" def author(self): return "plugin creator" def description(self): return "Hello World-Plugin to show you how it's done." def version(self): #return mobase.VersionInfo(0, 0, 1, mobase.ReleaseType.prealpha) return True def isActive(self): return True def settings(self): return [] def displayName(self): return "HelloWorld" def tooltip(self): return "Modify game Configuration" def createPlugin(): return YourHelloWorldPlugin()
if you place a file with a similiar structure inside the /plugins/ dir, MO will automatically find it and add it to the tools list.