FreeCAD
99 строк · 2.6 Кб
1"""
2Examples for customizing the FreeCAD application with PySide facilities.
3(c) 2007 Werner Mayer LGPL
4"""
5
6__author__ = "Werner Mayer <werner.wm.mayer@gmx.de>"
7
8from PySide import QtCore,QtGui
9import FreeCADGui, __main__
10
11class MainWindow:
12def __init__(self):
13self.app = QtGui.qApp
14self.mw = FreeCADGui.getMainWindow()
15self.dock = {}
16
17def setWindowTitle(self, name):
18self.mw.setWindowTitle(name)
19
20def addCalendar(self):
21d = QtGui.QDockWidget()
22d.setWindowTitle("Calendar")
23c = QtGui.QCalendarWidget()
24d.setWidget(c)
25self.mw.addDockWidget(QtCore.Qt.RightDockWidgetArea,d)
26self.dock[d] = c
27
28def information(self, title, text):
29QtGui.QMessageBox.information(self.mw, title, text)
30
31def warning(self, title, text):
32QtGui.QMessageBox.warning(self.mw, title, text)
33
34def critical(self, title, text):
35QtGui.QMessageBox.critical(self.mw, title, text)
36
37def question(self, title, text):
38QtGui.QMessageBox.question(self.mw, title, text)
39
40def aboutQt(self):
41QtGui.QMessageBox.aboutQt(self.mw, self.mw.tr("About Qt"))
42
43
44class PythonQtWorkbench (__main__.Workbench):
45"Python Qt workbench object"
46Icon = "python"
47MenuText = "PySide sandbox"
48ToolTip = "Python Qt workbench"
49
50def __init__(self):
51self.mw = FreeCADGui.getMainWindow()
52self.dock = {}
53self.item = []
54
55def information(self):
56QtGui.QMessageBox.information(self.mw, "Info", "This is an information")
57
58def warning(self):
59QtGui.QMessageBox.warning(self.mw, "Warning", "This is a warning")
60
61def critical(self):
62QtGui.QMessageBox.critical(self.mw, "Error", "This is an error")
63
64def Initialize(self):
65self.menu = QtGui.QMenu()
66self.menu.setTitle("Python Qt")
67self.item.append(self.menu.addAction("Test 1"))
68self.item.append(self.menu.addAction("Test 2"))
69self.item.append(self.menu.addAction("Test 3"))
70
71QtCore.QObject.connect(self.item[0], QtCore.SIGNAL("triggered()"), self.information)
72QtCore.QObject.connect(self.item[1], QtCore.SIGNAL("triggered()"), self.warning)
73QtCore.QObject.connect(self.item[2], QtCore.SIGNAL("triggered()"), self.critical)
74
75def Activated(self):
76self.__title__ = self.mw.windowTitle()
77self.mw.setWindowTitle("FreeCAD -- PythonQt")
78
79d = QtGui.QDockWidget()
80d.setWindowTitle("Calendar")
81c = QtGui.QCalendarWidget()
82d.setWidget(c)
83self.mw.addDockWidget(QtCore.Qt.RightDockWidgetArea,d)
84self.dock[d] = c
85
86bar = self.mw.menuBar()
87a=bar.actions()
88for i in a:
89if i.objectName() == "&Windows":
90break
91bar.insertMenu(i, self.menu)
92self.menu.setTitle("Python Qt")
93self.menu.menuAction().setVisible(True)
94
95def Deactivated(self):
96self.mw.setWindowTitle(self.__title__)
97self.dock.clear()
98
99FreeCADGui.addWorkbench(PythonQtWorkbench)
100