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,QtGui9import FreeCADGui, __main__10
11class MainWindow:12def __init__(self):13self.app = QtGui.qApp14self.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] = c27
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] = c85
86bar = self.mw.menuBar()87a=bar.actions()88for i in a:89if i.objectName() == "&Windows":90break91bar.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