Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from PySide import QtCore, QtGui, QtWebKit
- import WebGui
- import Part
- import FreeCADGui, FreeCAD
- html = """
- <HTML>
- <HEAD>
- <TITLE>Test Input</TITLE>
- <SCRIPT LANGUAGE="JavaScript">
- function testResults (form) {
- var lenVar = form.boxlength.value;
- var widthVar = form.boxwidth.value;
- var heightVar = form.boxheight.value;
- pyObj.newBox(lenVar,widthVar,heightVar);
- }</SCRIPT>
- </HEAD>
- <BODY>
- <FORM NAME="myform" ACTION="" METHOD="GET">
- <table> <TR>
- <img src="file:///home/danfalck/Documents/Part_Box.svg" onmousedown="alert('hello');"/><br />
- <TH align=right>Box Length:
- <TD><INPUT TYPE="text" NAME="boxlength" VALUE=""><TR>
- <TH align=right>Box Width:
- <TD><INPUT TYPE="text" NAME="boxwidth" VALUE=""><TR>
- <TH align=right>Box Height:
- <TD><INPUT TYPE="text" NAME="boxheight" VALUE=""><TR> </table>
- <INPUT TYPE="button" NAME="button" Value="Draw Box" onClick="testResults(this.form)">
- <INPUT TYPE="button" NAME="button2" Value="Print Text" onClick="printResults(this.form)">
- <INPUT TYPE="button" NAME="button3" Value="Clear Text" onClick="clearEditor(this.form)">
- <INPUT TYPE="button" NAME="button4" Value="Python Version" onClick="populateEditor(this.form)">
- <div id="editor" style="height: 300px; width: 500px">#this is a test</div>
- <script src="file:///home/danfalck/programming/ace/build/src/ace.js" type="text/javascript" charset="utf-8"></script>
- <script src="file:///home/danfalck/programming/ace/build/src/theme-twilight.js" type="text/javascript" charset="utf-8"></script>
- <script src="file:///home/danfalck/programming/ace/build/src/mode-python.js" type="text/javascript" charset="utf-8"></script>
- <script>
- window.onload = function() {
- editor = ace.edit("editor");
- editor.setTheme("ace/theme/twilight");
- var PythonMode = require("ace/mode/python").Mode;
- editor.getSession().setMode(new PythonMode());
- editor.renderer.setShowGutter(false)
- document.getElementById('editor').style.fontSize='18px';
- };
- </script>
- <SCRIPT LANGUAGE="JavaScript">
- function printResults(form) {
- var stuff = editor.getSession().getValue();
- pyObj.printAce(stuff);
- }</SCRIPT>
- <SCRIPT LANGUAGE="JavaScript">
- function clearEditor(form) {
- editor.getSession().setValue("");
- }</SCRIPT>
- <SCRIPT LANGUAGE="JavaScript">
- function populateEditor(form) {
- editor.getSession().setValue('Python ' + pyObj.pyVersion);
- }</SCRIPT>
- </FORM> </BODY> </HTML>
- """
- class TestClass(QtCore.QObject):
- @QtCore.Slot(str,str,str)
- def newBox(self, msg1,msg2,msg3):
- l = float(msg1); w= float(msg2);h = float(msg3)
- box1 = Part.makeBox(l,w,h)
- Part.show(box1)
- @QtCore.Slot(str)
- def printAce(self, msg1):
- FreeCAD.Console.PrintMessage(str(msg1)+"\n")
- #print 'test\n'
- def _pyVersion(self):
- """Return the Python version."""
- return sys.version
- """Python interpreter version property."""
- pyVersion = QtCore.Property(str, fget=_pyVersion)
- def getMainWindow():
- "returns the main window"
- # using QtGui.qApp.activeWindow() isn't very reliable because if another
- # widget than the mainwindow is active (e.g. a dialog) the wrong widget is
- # returned
- toplevel = QtGui.qApp.topLevelWidgets()
- for i in toplevel:
- if i.metaObject().className() == "Gui::MainWindow":
- return i
- raise Exception("No main window found")
- def getComboView(mw):
- dw=mw.findChildren(QtGui.QDockWidget)
- for i in dw:
- if str(i.objectName()) == "Combo View":
- return i.findChild(QtGui.QTabWidget)
- raise Exception("No tab widget found")
- myObj = TestClass()
- a = QtGui.qApp
- mw = getMainWindow()
- tab = getComboView(getMainWindow())
- tab2 = QtGui.QTabWidget(parent = mw)
- web = QtWebKit.QWebView(tab2)
- tab.addTab(tab2,"DrawBox")
- button1 = QtGui.QPushButton("PySide Button",tab2)
- button1.move(200, 10)
- def message():
- print 'test!'
- connect(button1, SIGNAL("clicked()"), (FreeCAD.Console.PrintMessage("pyside message")) )
- v= web
- v.setContent(html)
- #fun urls to load:
- #v.load("http://machinetouch.appspot.com/index.py")
- #v.load("http://demo.qooxdoo.org/devel/playground/#Hello%20World-ria") #too slow
- #v.load("http://demo.qooxdoo.org/devel/playground/#Hello%20World-mobile") #too slow
- #v.load("http://www.jstree.com/demo")
- #v.load("http://www.pageresource.com/jscript/jex12.htm")
- #v.load("http://www.pageresource.com/html5/canvas-basics/")
- #v.load("http://www.w3schools.com/html5/html5_svg.asp")
- #v.load("http://tavmjong.free.fr/blog/?p=36")
- #v.setPage("http://www.htmlfivewow.com/slide1")
- #v.load("http://andrew-hoyer.com/andrewhoyer/experiments/cloth/") #super cool!!
- #v.load("http://alteredqualia.com/canvasmol/#DNA")#runs slow
- #v.load("http://dl.dropbox.com/u/40496552/awwation-intro.svg#19") #use arrow keys to navigate this one- fun!!!
- curr1 = v.page()
- frame1 = curr1.currentFrame()
- frame1.addToJavaScriptWindowObject("pyObj", myObj)
- #<img src="http://tavmjong.free.fr/blog/wp-content/uploads/buttonA.svg" /><br />
- #<img src="file:////home/danfalck/Documents/freecad/simple1.svg" /><br />
- #tab.removeTab(2)
Add Comment
Please, Sign In to add comment