def _init_widgets(self): window = QMainWindow() window.setWindowFlags(Qt.Widget) # pseudo code text box self._textedit = QCCodeEdit(self) self._textedit.setTextInteractionFlags(Qt.TextSelectableByKeyboard | Qt.TextSelectableByMouse) self._textedit.setLineWrapMode(QCCodeEdit.NoWrap) textedit_dock = QDockWidget('Code', self._textedit) window.setCentralWidget(textedit_dock) textedit_dock.setWidget(self._textedit) # decompilation self._options = QDecompilationOptions(self, self.workspace.instance, options=None) options_dock = QDockWidget('Decompilation Options', self._options) window.addDockWidget(Qt.RightDockWidgetArea, options_dock) options_dock.setWidget(self._options) layout = QHBoxLayout() layout.addWidget(window) layout.setContentsMargins(0, 0, 0, 0) self.setLayout(layout) self.workspace.plugins.instrument_code_view(self)
def _init_widgets(self): main = QMainWindow() main.setWindowFlags(Qt.Widget) # main.setCorner(Qt.TopLeftCorner, Qt.TopDockWidgetArea) # main.setCorner(Qt.TopRightCorner, Qt.RightDockWidgetArea) pathtree = QPathTree(self.current_simgr, self.current_state, self, self.workspace, parent=main) pathtree_dock = QDockWidget('PathTree', pathtree) main.setCentralWidget(pathtree_dock) # main.addDockWidget(Qt.BottomDockWidgetArea, pathtree_dock) pathtree_dock.setWidget(pathtree) simgrs = QSimulationManagers(self.workspace.instance, self.current_simgr, self.current_state, parent=main) simgrs_dock = QDockWidget('SimulationManagers', simgrs) main.addDockWidget(Qt.RightDockWidgetArea, simgrs_dock) simgrs_dock.setWidget(simgrs) state_viewer = StateInspector(self.workspace, self.current_state, parent=self) state_viewer_dock = QDockWidget('Selected State', state_viewer) main.addDockWidget(Qt.RightDockWidgetArea, state_viewer_dock) state_viewer_dock.setWidget(state_viewer) self._pathtree = pathtree self._simgrs = simgrs self._state_viewer = state_viewer main_layout = QHBoxLayout() main_layout.addWidget(main) main_layout.setContentsMargins(0, 0, 0, 0) self.setLayout(main_layout)
def _move_dock_to_new_parent(self, dock: QDockWidget, new_parent: QMainWindow, dock_location=Qt.BottomDockWidgetArea): """The the doc to a different parent window. Args: dock (QDockWidget): Dock to move new_parent (QMainWindow): New parent window dock_location (Qt dock location): Location of the dock. Defaults to Qt.BottomDockWidgetArea. """ dock.setParent(new_parent) new_parent.addDockWidget(dock_location, dock) dock.setFloating(False) dock.show() dock.setMaximumHeight(99999)
if __name__ == "__main__": app = QApplication() w = QMainWindow() w.setMinimumSize(640, 480) elems = ElementTree() elems.create_from_dict(ELEMENTS) elems.expandAll() dw = QDockWidget() dw.setWidget(elems) dw.setWindowTitle('Elements') dw.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable) w.addDockWidget(Qt.LeftDockWidgetArea, dw) sim = Simulator() schem = Schematic() sim.root = schem.root g = Gate('or', 1, 2, False) g.name = 'gate' el = GateElement(sim, g) schem.add_element(el) ed = SchematicEditor(schem) t = QTimer(w) edd = None def _on_select(): global edd
QIcon(QCommonStyle().standardPixmap(QCommonStyle.SP_DirIcon)), '打开目录') tool_bar.addAction(open_dir_action) open_file_action = QAction( QIcon(QCommonStyle().standardPixmap(QCommonStyle.SP_FileIcon)), '新建文件') tool_bar.addAction(open_file_action) open_delete_action = QAction( QIcon(QCommonStyle().standardPixmap(QCommonStyle.SP_TrashIcon)), '删除') tool_bar.addAction(open_delete_action) dock_calendar_widget = QDockWidget() dock_calendar_widget.setWidget(QCalendarWidget()) dock_listview_widget = QDockWidget() dock_listview_widget.setWidget(QListView()) # 添加在dock widgets区域的右边,Qt是一个包含了各种常量的包 mainwindow.addDockWidget(Qt.RightDockWidgetArea, dock_calendar_widget) mainwindow.addDockWidget(Qt.RightDockWidgetArea, dock_listview_widget) # 添加一个空的widget mainwindow.setCentralWidget(QWidget()) # 创建状态栏对象 statusbar = QStatusBar() statusbar.showMessage('我是statusbar') # 添加工具栏 mainwindow.addToolBar(tool_bar) # 添加状态栏 mainwindow.setStatusBar(statusbar) mainwindow.show() app.exec_()