Hallo,
Even een omkadering, ik ben een beetje aan het prutsen in Illumination Software Creator, een programma waarmee je simpel programmatjes "tekent" door het verbinden van verschillende events met elkaar.
Nu, je kan ook zelf uitbreidingen schrijven aan de hand van een soort pluginsysteem. Als je zelf een plugin schrijft, wordt dat zo in de code gecompiled dat het er goed inpast. Maar ik zou nu bestaande functionaliteit, die automatisch in het script zit, willen aanpassen.
Even een voorbeeld: dit is een scriptje dat illumination maakt als ik gewoon 1 window heb, met een knop, als ik op die knop klik, komt er een message box met "hello"
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gobject
import random
import os
import gtk
#EndImports
class iscApp1:
iscWindow4Window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
iscWindow4Window1Fixed = gtk.Fixed()
iscWindow4Button2 = gtk.Button("Button")
#EndOfGlobalVariables
def main(self):
gtk.main()
def destroy(self, widget, data=None):
gtk.main_quit()
#EndOfClass
def iscAppQuit2():
thisiscApp1.destroy(None,None)
#iscAppQuit2Done
def iscWindow4():
thisiscApp1.iscWindow4Button2 = gtk.Button("Button")
thisiscApp1.iscWindow4Window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
thisiscApp1.iscWindow4Window1Fixed = gtk.Fixed()
thisiscApp1.iscWindow4Window1.set_title("Window")
thisiscApp1.iscWindow4Window1.set_default_size(300, 300)
thisiscApp1.iscWindow4Window1.add(thisiscApp1.iscWindow4Window1Fixed)
thisiscApp1.iscWindow4Window1Fixed.width = 300
thisiscApp1.iscWindow4Window1Fixed.height = 300
thisiscApp1.iscWindow4Window1.connect("delete_event", iscWindow4Closed)
thisiscApp1.iscWindow4Window1Fixed.show()
thisiscApp1.iscWindow4Window1Fixed.put(thisiscApp1.iscWindow4Button2, 97, 101)
thisiscApp1.iscWindow4Button2.set_size_request(80, 26)
thisiscApp1.iscWindow4Button2.connect("clicked", iscWindow4ButtonClicked)
thisiscApp1.iscWindow4Button2.show()
thisiscApp1.iscWindow4Window1.show()
#iscWindow4Opened
#iscWindow4Done
def iscWindow4Closed(self, other):
pass
iscAppQuit2()
#iscWindow4Closed
def iscWindow4ButtonClicked(self):
pass
iscMessageBox5()
#iscWindow4ButtonClicked
def iscMessageBox5():
message = "Hello"
dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_NONE, message)
dialog.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE)
dialog.run()
#iscMessageBox5Open
dialog.destroy()
#iscMessageBox5Closed
#EndOfFunctions
thisiscApp1 = iscApp1()
iscWindow4()
#iscApp1Launched
#EndOfStatements
thisiscApp1.main()
Echter zijn er volgens mij maar 2 dingen die ik moet kunnen aanpassen, namelijk deze:
class iscApp1:
iscWindow4Window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
iscWindow4Window1Fixed = gtk.Fixed()
iscWindow4Button2 = gtk.Button("Button")
#EndOfGlobalVariables
Nu weet ik niet, of ik nog een deeltje kan toevoegen aan deze code, door een stukje code op een andere plaats toe te voegen?
Concreter: In vb zou die "partial classes" noemen, daar gebruik ik dat regelmatig, bestaan partial classes in python?
En ook nog:
def iscWindow4():
thisiscApp1.iscWindow4Button2 = gtk.Button("Button")
thisiscApp1.iscWindow4Window1 = gtk.Window(gtk.WINDOW_TOPLEVEL)
thisiscApp1.iscWindow4Window1Fixed = gtk.Fixed()
thisiscApp1.iscWindow4Window1.set_title("Window")
thisiscApp1.iscWindow4Window1.set_default_size(300, 300)
thisiscApp1.iscWindow4Window1.add(thisiscApp1.iscWindow4Window1Fixed)
thisiscApp1.iscWindow4Window1Fixed.width = 300
thisiscApp1.iscWindow4Window1Fixed.height = 300
thisiscApp1.iscWindow4Window1.connect("delete_event", iscWindow4Closed)
thisiscApp1.iscWindow4Window1Fixed.show()
thisiscApp1.iscWindow4Window1Fixed.put(thisiscApp1.iscWindow4Button2, 97, 101)
thisiscApp1.iscWindow4Button2.set_size_request(80, 26)
thisiscApp1.iscWindow4Button2.connect("clicked", iscWindow4ButtonClicked)
thisiscApp1.iscWindow4Button2.show()
thisiscApp1.iscWindow4Window1.show()
#iscWindow4Opened
#iscWindow4Done
Kan ik die define nog op een andere plek definiƫren?
Bijvoorbeeld iets als:
Extends def iscWindow4
? beetje zelfde als partial class dus, maar partial def, ofzo.
Op deze manier zou ik zelf grafische elementen kunnen toevoegen, of allesinds bijvoorbeeld lettergroote ofzo op bestaande elementen aanpassen.
Hartelijk dank!