Ich versuche gerade mittels eines QDockWidget( PySide; Gui-Design in Qt-Designer) ein (externes) Programm in mein GUI einzubinden.
Bei on_btnCone_clicked: wird das Programm in das MainWindow(central Widget) ohne Probleme geladen.
Jedoch bei on_btnBox_clicked: funktioniert das leider nicht.
Anbei der code:
Ich bin noch recht neu in Python/PySide/Designer, darum hoffe ich dass mir jemand bei meinem Problem weiterhelfen kann.
VIelen Dank schon mal im Voraus!
Code: Alles auswählen
class MainWindow(QtGui.QMainWindow):
def __init__(self,parent=None):
QMainWindow.__init__(self)
loader = QUiLoader()
self.ui = loader.load('simpleGui_FreeCAD.ui',self)
QMetaObject.connectSlotsByName(self)
# docwid = QDockWidget()
# FreeCADGui.showMainWindow()
# get = FreeCADGui.getMainWindow()
# docwid.setWidget(get)
@Slot()
def on_btnCone_clicked(self):
#FreeCADGui.addWorkbench(BlankWorkbench)
#FreeCADGui.activateWorkbench("BlankWorkbench")
#QtGui.QDockWidget.setWidget(FreeCADGui.showMainWindow())
#FreeCADGui.showMainWindow()
#FreeCADGui.showMainWindow()
FreeCADGui.showMainWindow()
get = FreeCADGui.getMainWindow()
self.ui.setCentralWidget(get)
print 'test'
@Slot()
def on_btnBox_clicked(self):
QMessageBox.information(self,"Hello", "Test")
docwid = QDockWidget()
FreeCADGui.showMainWindow()
get = FreeCADGui.getMainWindow()
docwid.setWidget(get)
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QWidget" name="freecad_widget" native="true">
<property name="geometry">
<rect>
<x>350</x>
<y>110</y>
<width>301</width>
<height>251</height>
</rect>
</property>
</widget>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>90</x>
<y>110</y>
<width>77</width>
<height>83</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="btnBox">
<property name="text">
<string>Click for Box</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnCone">
<property name="text">
<string>Click for Cone</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnExit">
<property name="text">
<string>Exit</string>
</property>
</widget>
</item>
</layout>
</widget>
<zorder>freecad_widget</zorder>
<zorder>btnBox</zorder>
<zorder>btnCone</zorder>
<zorder>btnExit</zorder>
<zorder>btnExit</zorder>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>