def left_navigation(self, parent): # Left Docket Widget self.dockWidget_Left = QDockWidget(parent) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.dockWidget_Left.sizePolicy().hasHeightForWidth()) self.dockWidget_Left.setSizePolicy(sizePolicy) self.dockWidget_Left.setMinimumSize(QSize(250, 500)) self.dockWidget_Left.setMaximumSize(QSize(250, 524287)) self.dockWidget_Left.setSizeIncrement(QSize(0, 0)) self.dockWidget_Left.setFloating(False) self.dockWidget_Left.setFeatures(QDockWidget.NoDockWidgetFeatures) self.dockWidget_Left.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) # Left Docket Widget Content self.dockWidgetContents = QWidget() # Vertical layout inside Left Docket Widget Content self.verticalLayout = QVBoxLayout(self.dockWidgetContents) self.verticalLayout.setContentsMargins(10, 10, 10, 10) # Title label self.label = QLabel(self.dockWidgetContents) self.label.setText("Tournaments") self.label.setAlignment(Qt.AlignCenter) # List widget self.listWidget = QListWidget(self.dockWidgetContents) # Add label and list widget to vertical self.verticalLayout.addWidget(self.label) self.verticalLayout.addWidget(self.listWidget) self.dockWidget_Left.setWidget(self.dockWidgetContents) parent.addDockWidget(Qt.DockWidgetArea(1), self.dockWidget_Left)
def _initMaya(self): """ Initialize Maya-related state. Delete Maya nodes if there is an old document left over from the same session. Set up the Maya window. """ # There will only be one document if (app().active_document and app().active_document.win and not app().active_document.win.close()): return del app().active_document app().active_document = self import maya.OpenMayaUI as OpenMayaUI import sip ptr = OpenMayaUI.MQtUtil.mainWindow() mayaWin = sip.wrapinstance(int(ptr), QMainWindow) self.windock = QDockWidget("cadnano") self.windock.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable) self.windock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) self.windock.setWidget(self.win) mayaWin.addDockWidget(Qt.DockWidgetArea(Qt.LeftDockWidgetArea), self.windock) self.windock.setVisible(True)
def __init__(self, mainwindow, position: Qt.DockWidgetArea) -> None: super().__init__("Data", mainwindow) self.mainwindow = mainwindow self.initUI() mainwindow.addDockWidget(Qt.DockWidgetArea(position), self) self.load_project(mainwindow.project)
def resetToolbar(self): ''' docstring: 还原工具栏位置,采用删除后重填加的方式 ''' self.removeDockWidget(self.Toolbar) if not self.Toolbar.isVisible(): # visible是自身属性,可以直接修改 self.Toolbar.toggleViewAction().trigger() self.addDockWidget(Qt.DockWidgetArea(Qt.RightDockWidgetArea), self.Toolbar) if self.Toolbar.isFloating(): # floating属性涉及到外部dock位置,需要先确定父widget self.Toolbar.setFloating(False)
def __init__(self, TraceMain, name): super(QDockWidget, self).__init__(TraceMain) #self.dockWidget = QDockWidget(TraceMain) self.dockContents = QWidget(TraceMain) # Create container self.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable) self.setWindowTitle(name) # set dockwidget title self.setWidget(self.dockContents) # add container to dockwidget TraceMain.addDockWidget(Qt.DockWidgetArea(Qt.TopDockWidgetArea), self) # add widget to dock TraceMain.setTabPosition(Qt.DockWidgetArea(Qt.TopDockWidgetArea), QTabWidget.TabPosition(QTabWidget.North)) Globals.dockList.append(self) # Keep track of all docks if (len(Globals.dockList) > 1): for i, purge in enumerate(Globals.dockList): if i < len(Globals.dockList) - 1: TraceMain.tabifyDockWidget(Globals.dockList[i], Globals.dockList[i + 1]) self.parent = TraceMain # Set parent, so we can access the MainWindow (e.g themeChange) # Initialize all modules self.name = name self.snifferConfig = ConfigurationData(self, name) self.snifferParser = SnifferFileParser() self.snifferFilter = SnifferFilter(self) self.snifferFilter.setSnifferFilterUi() self.snifferStats = SnifferStats() self.snifferStats.setSnifferStatsUi() self.logger = SnifferLogger(name)
def __init__(self): try: #Setup Window Size and Titlebar super(DataVisualizerGui, self).__init__() self.setWindowTitle('DATA VISUALIZER TOOL') self.setGeometry(WINDOW_MARGIN, WINDOW_MARGIN, WINDOW_WIDTH, WINDOW_HEIGHT) #Set up Window Space self.mainWidget = QWidget() self.mainLayout = QVBoxLayout() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) #Add Welcome Message label = QLabel('Welcome to the Data Visualizer!') self._set_font(label, 24, True) self.mainLayout.addWidget(label) # Add Button self.loadDsButton = QPushButton('Load New Dataset ---->') self.loadDsButton.setToolTip( 'Runs the Sequence Created on the DockedWindow') self.loadDsButton.clicked.connect(self._load_new_ds) self._set_font(self.loadDsButton, 14, True) self.mainLayout.addWidget(self.loadDsButton) # Add Plot Area self.scrollArea = QScrollArea() self.scrollArea.setWidgetResizable(True) self.pltCanvas = PlotCanvas(self, width=FIG_WIDTH, height=FIG_WIDTH) self.scrollArea.setWidget(self.pltCanvas) self.naviToolbar = NavigationToolbar(self.pltCanvas, self) self.mainLayout.addWidget(self.scrollArea) self.mainLayout.addWidget(self.naviToolbar) #Add Data Selector Dock Widget self.dataSelectorWindow = DataWindow(self.pltCanvas) self.dockRightArea = Qt.DockWidgetArea(2) self.addDockWidget(self.dockRightArea, self.dataSelectorWindow) self.show() except: traceback.print_exc()
def __init__(self): super(QtTrajectoryViewer, self).__init__() self.controls = QDockWidget() # Eliminate the dock titlebar title_widget = QtWidgets.QWidget(self) self.controls.setTitleBarWidget(title_widget) traj_controls = TrajectoryControls(self) self.controls.setWidget(traj_controls) # Molecular viewer self.widget = QChemlabWidget(self) self.setCentralWidget(self.widget) self.addDockWidget(Qt.DockWidgetArea(Qt.BottomDockWidgetArea), self.controls) self.show() # Replace in this way traj_controls.frame_changed.connect(self.on_frame_changed) self.traj_controls = traj_controls
def widgets(self): # Setup the Widgets for UI #================================ Setup Dock Widgets ======================================================= self.dock_list = QDockWidget() self.dock_control = QDockWidget() self.addDockWidget(Qt.DockWidgetArea(1), self.dock_control) self.addDockWidget(Qt.DockWidgetArea(1), self.dock_list) self.dock_list.setWindowTitle( QApplication.translate("self", "Music List", None)) self.dock_control.setWindowTitle( QApplication.translate("self", "Control Pad", None)) # =============================== Setup Menu Bar and Menus ================================================= self.menu = self.menuBar() self.file = self.menu.addMenu("File") self.control_pad_show = QAction("Show Control Pad") self.control_pad_show.setShortcut("Shift+C") self.control_pad_show.triggered.connect(self.show_control_pad) self.file.addAction(self.control_pad_show) self.music_list_show = QAction("Show Music List") self.music_list_show.setShortcut("Shift+M") self.music_list_show.triggered.connect(self.show_music_list) self.file.addAction(self.music_list_show) # =============================== Setup all Widgets (Buttons , List ) ====================================== # Music Progress Bar self.progress_bar = QSlider(Qt.Horizontal) self.progress_bar.sliderPressed.connect(self.change_time_slider) self.progress_bar.sliderMoved.connect(self.slider_released) self.progress_bar.sliderReleased.connect(self.slider_released) # Add song Btton self.add_button = QToolButton() self.add_button.setIcon(QIcon("icons/23937_52032_add_gtk.png")) self.add_button.setIconSize(QSize(48, 48)) self.add_button.setToolTip("Add a song") self.add_button.clicked.connect(self.add_song) # Shuffle Button self.shuffle_button = QToolButton() self.shuffle_button.setIcon(QIcon("icons/shuffle.png")) self.shuffle_button.setIconSize(QSize(48, 48)) self.shuffle_button.setToolTip("Shuffle") self.shuffle_button.clicked.connect(self.shuffle_song_list) # Previous Button (Play Previous song) self.previous_button = QToolButton() self.previous_button.setIcon(QIcon("icons/backward.png")) self.previous_button.setIconSize(QSize(48, 48)) self.previous_button.setToolTip("Play Previous") self.previous_button.clicked.connect(self.play_previous) # Play Button self.play_button = QToolButton() self.play_button.setIcon(QIcon("icons/play.png")) self.play_button.setIconSize(QSize(64, 64)) self.play_button.setToolTip("Play") self.play_button.clicked.connect(self.play_song) # Pause Button self.pause_button = QToolButton() self.pause_button.setIcon(QIcon("icons/pause.png")) self.pause_button.setIconSize(QSize(64, 64)) self.pause_button.setToolTip("Pause") self.pause_button.clicked.connect(self.pause_song) # Forward Button (Play Next Song) self.forward_button = QToolButton() self.forward_button.setIcon(QIcon("icons/forwards.png")) self.forward_button.setIconSize(QSize(48, 48)) self.forward_button.setToolTip("Play Next") self.forward_button.clicked.connect(self.play_forward) # Mute Button self.mute_button = QToolButton() self.mute_button.setIcon(QIcon("icons/volume-adjustment.png")) self.mute_button.setIconSize(QSize(24, 24)) self.mute_button.setToolTip("Mute") self.mute_button.clicked.connect(self.set_mute) # Volume Slider self.volume_slider = QSlider(Qt.Horizontal) self.volume_slider.setToolTip("Volume") self.volume_slider.setMaximumWidth(50) self.volume_slider.setMinimumWidth(50) self.volume_slider.setMaximum(100) self.volume_slider.setValue(70) self.volume_slider.valueChanged.connect(self.volume_change) mixer.music.set_volume(0.7) # Music List self.song_list = QListWidget() self.song_list.doubleClicked.connect(self.play_song) # Seek Timer self.timer = QTimer() self.timer.setInterval(1000) self.timer.timeout.connect(self.update_progress) self.timer.stop() # Song Time Labels self.song_timer_label = QLabel("00:00") self.song_length_label = QLabel("/ 00:00")
def setupUi(self, qMainWindow): qMainWindow.resize(860, 506) self.qWidget1 = QtWidgets.QWidget(qMainWindow) self.qScrollArea = QtWidgets.QScrollArea(self.qWidget1) self.qScrollArea.setGeometry(QRect(20, 20, 541, 361)) self.qScrollArea.setMinimumSize(QSize(200, 0)) self.qScrollArea.setSizeAdjustPolicy( QtWidgets.QAbstractScrollArea.AdjustIgnored) self.qScrollArea.setWidgetResizable(True) self.qScrollArea.setAlignment(Qt.AlignCenter) self.qWidget2 = QtWidgets.QWidget(self.qScrollArea) self.qWidget2.setGeometry(QRect(0, 0, 539, 359)) self.qVBoxLayout1 = QtWidgets.QVBoxLayout(self.qWidget2) self.qLabel = QtWidgets.QLabel(self.qWidget2) self.qLabel.setAlignment(Qt.AlignCenter) self.qLabel.setText("待显示图片") self.qVBoxLayout1.addWidget(self.qLabel) self.qScrollArea.setWidget(self.qWidget2) qMainWindow.setCentralWidget(self.qWidget1) self.qMenuBar = QtWidgets.QMenuBar(qMainWindow) self.qMenuBar.setGeometry(QRect(0, 0, 860, 23)) self.qMenu1 = QtWidgets.QMenu(self.qMenuBar) self.qMenu1.setTitle("目录树") self.qMenu2 = QtWidgets.QMenu(self.qMenuBar) self.qMenu2.setTitle("视图") self.qAction1 = QtWidgets.QAction(qMainWindow) self.qAction1.setText("添加目录") self.qAction1.setIcon(QIcon("../image/folder1.bmp")) self.qAction2 = QtWidgets.QAction(qMainWindow) self.qAction2.setText("添加文件") self.qAction2.setIcon(QIcon("../image/824.bmp")) self.qAction3 = QtWidgets.QAction(qMainWindow) self.qAction3.setText("删除节点") self.qAction3.setIcon(QIcon("../image/delete1.bmp")) self.qAction3.setEnabled(False) self.qAction4 = QtWidgets.QAction(qMainWindow) self.qAction4.setText("遍历节点") self.qAction4.setIcon(QIcon("../image/fold.bmp")) self.qAction5 = QtWidgets.QAction(qMainWindow) self.qAction5.setText("退出") self.qAction5.setIcon(QIcon("../image/exit.bmp")) self.qAction6 = QtWidgets.QAction(qMainWindow) self.qAction6.setText("放大") self.qAction6.setIcon(QIcon("../image/418.bmp")) self.qAction6.setEnabled(False) self.qAction7 = QtWidgets.QAction(qMainWindow) self.qAction7.setText("缩小") self.qAction7.setIcon(QIcon("../image/416.bmp")) self.qAction7.setEnabled(False) self.qAction8 = QtWidgets.QAction(qMainWindow) self.qAction8.setText("实际大小") self.qAction8.setIcon(QIcon("../image/414.bmp")) self.qAction8.setEnabled(False) self.qAction9 = QtWidgets.QAction(qMainWindow) self.qAction9.setText("适合宽度") self.qAction9.setIcon(QIcon("../image/424.bmp")) self.qAction9.setEnabled(False) self.qAction10 = QtWidgets.QAction(qMainWindow) self.qAction10.setText("适合高度") self.qAction10.setIcon(QIcon("../image/426.bmp")) self.qAction10.setEnabled(False) self.qMenu1.addAction(self.qAction1) self.qMenu1.addAction(self.qAction2) self.qMenu1.addAction(self.qAction3) self.qMenu1.addAction(self.qAction4) self.qMenu1.addSeparator() self.qMenu1.addAction(self.qAction5) self.qMenu2.addAction(self.qAction6) self.qMenu2.addAction(self.qAction7) self.qMenu2.addAction(self.qAction8) self.qMenu2.addAction(self.qAction9) self.qMenu2.addAction(self.qAction10) self.qMenuBar.addMenu(self.qMenu1) self.qMenuBar.addMenu(self.qMenu2) qMainWindow.setMenuBar(self.qMenuBar) self.qToolBar = QtWidgets.QToolBar(qMainWindow) self.qToolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) self.qAction11 = QtWidgets.QAction(qMainWindow) self.qAction11.setText("窗体浮动") self.qAction11.setIcon(QIcon("../image/814.bmp")) self.qAction11.setCheckable(True) self.qAction11.setChecked(False) self.qAction12 = QtWidgets.QAction(qMainWindow) self.qAction12.setText("窗体可见") self.qAction12.setIcon(QIcon("../image/414.bmp")) self.qAction12.setCheckable(True) self.qAction12.setChecked(True) self.qToolBar.addAction(self.qAction1) self.qToolBar.addAction(self.qAction2) self.qToolBar.addAction(self.qAction3) self.qToolBar.addAction(self.qAction4) self.qToolBar.addSeparator() self.qToolBar.addAction(self.qAction6) self.qToolBar.addAction(self.qAction7) self.qToolBar.addAction(self.qAction8) self.qToolBar.addAction(self.qAction9) self.qToolBar.addAction(self.qAction10) self.qToolBar.addSeparator() self.qToolBar.addAction(self.qAction11) self.qToolBar.addAction(self.qAction12) self.qToolBar.addSeparator() self.qToolBar.addAction(self.qAction5) qMainWindow.addToolBar(Qt.TopToolBarArea, self.qToolBar) self.qStatusBar = QtWidgets.QStatusBar(qMainWindow) qMainWindow.setStatusBar(self.qStatusBar) self.qDockWidget = QtWidgets.QDockWidget(qMainWindow) self.qDockWidget.setFeatures( QtWidgets.QDockWidget.AllDockWidgetFeatures) self.qDockWidget.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) self.qDockWidget.setWindowTitle("图片目录树") self.qWidget3 = QtWidgets.QWidget(self.qDockWidget) self.qVBoxLayout2 = QtWidgets.QVBoxLayout(self.qWidget3) self.qTreeWidget = QtWidgets.QTreeWidget(self.qWidget3) self.qTreeWidget.setColumnCount(2) self.qTreeWidget.headerItem().setTextAlignment(0, Qt.AlignCenter) self.qTreeWidget.headerItem().setTextAlignment(1, Qt.AlignCenter) self.qTreeWidget.header().setDefaultSectionSize(150) self.qTreeWidget.headerItem().setText(0, "节点") self.qTreeWidget.headerItem().setText(1, "节点类型") qTreeWidgetItem1 = QtWidgets.QTreeWidgetItem(self.qTreeWidget) qTreeWidgetItem1.setIcon(0, QIcon("../image/15.ico")) qTreeWidgetItem2 = QtWidgets.QTreeWidgetItem(qTreeWidgetItem1) qTreeWidgetItem2.setIcon(0, QIcon("../image/open3.bmp")) qTreeWidgetItem3 = QtWidgets.QTreeWidgetItem(qTreeWidgetItem2) qTreeWidgetItem3.setIcon(0, QIcon("../image/31.ico")) qTreeWidgetItem3.setFlags(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) qTreeWidgetItem4 = QtWidgets.QTreeWidgetItem(qTreeWidgetItem1) qTreeWidgetItem4.setIcon(0, QIcon("../image/open3.bmp")) qTreeWidgetItem5 = QtWidgets.QTreeWidgetItem(qTreeWidgetItem4) qTreeWidgetItem5.setIcon(0, QIcon("../image/31.ico")) self.qTreeWidget.topLevelItem(0).setText(0, "图片文件") self.qTreeWidget.topLevelItem(0).child(0).setText(0, "分组节点") self.qTreeWidget.topLevelItem(0).child(0).child(0).setText(0, "图片节点") self.qTreeWidget.topLevelItem(0).child(1).setText(0, "分组2") self.qTreeWidget.topLevelItem(0).child(1).child(0).setText(0, "图片2") self.qVBoxLayout2.addWidget(self.qTreeWidget) self.qDockWidget.setWidget(self.qWidget3) qMainWindow.addDockWidget(Qt.DockWidgetArea(1), self.qDockWidget) self.qAction1.setObjectName("qAction1") self.qAction2.setObjectName("qAction2") self.qAction3.setObjectName("qAction3") self.qAction4.setObjectName("qAction4") self.qAction5.setObjectName("qAction5") self.qAction6.setObjectName("qAction6") self.qAction7.setObjectName("qAction7") self.qAction8.setObjectName("qAction8") self.qAction9.setObjectName("qAction9") self.qAction10.setObjectName("qAction10") self.qAction11.setObjectName("qAction11") self.qAction12.setObjectName("qAction12") self.qTreeWidget.setObjectName("qTreeWidget") self.qDockWidget.setObjectName("qDockWidget") self.qAction5.triggered.connect(qMainWindow.close) QtCore.QMetaObject.connectSlotsByName(qMainWindow)
def setup(self): # 定义主窗口 self.setEnabled(True) self.resize(800, 600) self.setMinimumSize(QSize(800, 600)) # 创建堆叠窗口 self.mw_stacked_widget = StackedWidget() self.mw_stacked_widget.setup() # 创建参数列表窗口 self.mw_paralist_dock = ParalistDock() self.mw_paralist_dock.setup() self.addDockWidget(Qt.DockWidgetArea(1), self.mw_paralist_dock) # 设置主窗口布局 self.mainwindow_layout = QWidget(self) self.mainwindow_layout.setObjectName("mainwindow_layout") self.horizontalLayout = QHBoxLayout(self.mainwindow_layout) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setSpacing(0) self.horizontalLayout.setObjectName("horizontalLayout") self.horizontalLayout.addWidget(self.mw_stacked_widget) self.setCentralWidget(self.mainwindow_layout) # 创建菜单栏 self.menubar = QMenuBar(self) self.menubar.setGeometry(QRect(0, 0, 800, 23)) self.menubar.setObjectName("menubar") self.menu_file = QMenu(self.menubar) self.menu_file.setObjectName("menu_file") self.menu_import = QMenu(self.menu_file) self.menu_import.setObjectName("menu_import") self.menu_export = QMenu(self.menu_file) self.menu_export.setObjectName("menu_export") self.menu_edit = QMenu(self.menubar) self.menu_edit.setObjectName("menu_edit") self.menu_view = QMenu(self.menubar) self.menu_view.setObjectName("menu_view") self.menu_tools = QMenu(self.menubar) self.menu_tools.setObjectName("menu_tools") self.menu_window = QMenu(self.menubar) self.menu_window.setObjectName("menu_window") self.menu_help = QMenu(self.menubar) self.menu_help.setObjectName("menu_help") self.menu_analysis = QMenu(self.menubar) self.menu_analysis.setObjectName("menu_analysis") self.menu_mathematics = QMenu(self.menu_analysis) self.menu_mathematics.setObjectName("menu_mathematics") self.menu_data_manipulation = QMenu(self.menu_analysis) self.menu_data_manipulation.setObjectName("menu_data_manipulation") self.menu_data_manage = QMenu(self.menu_analysis) self.menu_data_manage.setObjectName("menu_data_manage") self.menu_plot = QMenu(self.menubar) self.menu_plot.setObjectName("menu_plot") self.setMenuBar(self.menubar) # 创建状态栏 self.statusbar = QStatusBar(self) self.statusbar.setObjectName("statusbar") self.setStatusBar(self.statusbar) # 创建工具栏 self.toolbar = QToolBar(self) self.toolbar.setObjectName("toolbar") self.addToolBar(Qt.TopToolBarArea, self.toolbar) # 创建动作 self.action_new = QAction(self) self.action_new.setObjectName("action_new") self.action_open = QAction(self) self.action_open.setObjectName("action_open") self.action_import_normal_datafile = QAction(self) self.action_import_normal_datafile.setObjectName( "action_import_normal_datafile") self.action_export_data = QAction(self) self.action_export_data.setObjectName("action_export_data") self.action_exit = QAction(self) self.action_exit.setObjectName("action_exit") self.action_simple_math = QAction(self) self.action_simple_math.setObjectName("action_simple_math") self.action_testpoint_manage = QAction(self) self.action_testpoint_manage.setObjectName("action_testpoint_manage") self.action_synchronization = QAction(self) self.action_synchronization.setObjectName("action_synchronization") self.action_tuning = QAction(self) self.action_tuning.setObjectName("action_tuning") self.action_para_manage = QAction(self) self.action_para_manage.setObjectName("action_para_manage") self.action_temp_manage = QAction(self) self.action_temp_manage.setObjectName("action_temp_manage") self.action_options = QAction(self) self.action_options.setObjectName("action_options") self.action_about = QAction(self) self.action_about.setObjectName("action_about") self.action_quick_plot = QAction(self) self.action_quick_plot.setObjectName("action_quick_plot") self.action_custom_defined_plot = QAction(self) self.action_custom_defined_plot.setObjectName( "action_custom_defined_plot") self.action_multi_source_plot = QAction(self) self.action_multi_source_plot.setObjectName("action_multi_source_plot") self.action_paralist_dock_isclosed = QAction(self) self.action_paralist_dock_isclosed.setCheckable(True) self.action_paralist_dock_isclosed.setChecked(True) self.action_paralist_dock_isclosed.setObjectName( "action_paralist_dock_isclosed") # 将动作添加到对应的菜单下 self.menu_import.addAction(self.action_import_normal_datafile) self.menu_export.addAction(self.action_export_data) self.menu_file.addAction(self.action_new) self.menu_file.addAction(self.action_open) self.menu_file.addSeparator() self.menu_file.addAction(self.menu_import.menuAction()) self.menu_file.addAction(self.menu_export.menuAction()) self.menu_file.addSeparator() self.menu_file.addAction(self.action_exit) self.menu_view.addAction(self.action_paralist_dock_isclosed) self.menu_tools.addAction(self.action_options) self.menu_help.addAction(self.action_about) self.menu_mathematics.addAction(self.action_simple_math) self.menu_data_manipulation.addAction(self.action_testpoint_manage) self.menu_data_manipulation.addAction(self.action_synchronization) self.menu_data_manipulation.addAction(self.action_tuning) self.menu_data_manage.addAction(self.action_para_manage) self.menu_data_manage.addAction(self.action_temp_manage) self.menu_analysis.addAction(self.menu_mathematics.menuAction()) self.menu_analysis.addAction(self.menu_data_manipulation.menuAction()) self.menu_analysis.addAction(self.menu_data_manage.menuAction()) self.menu_plot.addAction(self.action_quick_plot) self.menu_plot.addAction(self.action_custom_defined_plot) self.menu_plot.addAction(self.action_multi_source_plot) self.menubar.addAction(self.menu_file.menuAction()) self.menubar.addAction(self.menu_edit.menuAction()) self.menubar.addAction(self.menu_view.menuAction()) self.menubar.addAction(self.menu_analysis.menuAction()) self.menubar.addAction(self.menu_plot.menuAction()) self.menubar.addAction(self.menu_tools.menuAction()) self.menubar.addAction(self.menu_window.menuAction()) self.menubar.addAction(self.menu_help.menuAction()) self.toolbar.addAction(self.action_import_normal_datafile) self.retranslate() # QMetaObject.connectSlotsByName(self) # =======连接信号与槽 self.mw_paralist_dock.signal_close.connect( self.slot_paralist_dock_close)
def __init__(self, mainwindow, Position: Qt.DockWidgetArea) -> None: super().__init__("Canvas Properties", mainwindow) self.mainwindow = mainwindow self.initUI() mainwindow.addDockWidget(Qt.DockWidgetArea(Position), self)
def __init__(self, configFile: Any=None, BRAHMA: bool=False, expert: bool=False, devices: str=None, hideHistograms: bool=False) -> None: WidgetBase.__init__(self, hideHistograms=hideHistograms) AOClassTemplate.__init__(self) self.BRAHMA = BRAHMA self.rollingWindow = 100 self.SRLE = deque(maxlen=self.rollingWindow) self.SRSE = deque(maxlen=self.rollingWindow) self.numiter = deque(maxlen=self.rollingWindow) self.expert = expert self.devices = devices self.uiAO = AOWindowTemplate() self.uiAO.setupUi(self) ############################################################# # ATTRIBUTES # ############################################################# self.supervisor = None self.config = None self.stop = False # type: bool # Request quit self.uiAO.wao_nbiters.setValue(1000) # Default GUI nIter box value self.nbiter = self.uiAO.wao_nbiters.value() self.refreshTime = 0 # type: float # System time at last display refresh self.assistant = None # type: Any self.see_atmos = 1 ############################################################# # CONNECTED BUTTONS # ############################################################# # Default path for config files self.defaultParPath = os.environ["SHESHA_ROOT"] + "/data/par/par4bench" self.defaultAreaPath = os.environ["SHESHA_ROOT"] + "/data/layouts" self.loadDefaultConfig() self.uiAO.wao_run.setCheckable(True) self.uiAO.wao_run.clicked[bool].connect(self.aoLoopClicked) self.uiAO.wao_openLoop.setCheckable(True) self.uiAO.wao_openLoop.clicked[bool].connect(self.aoLoopOpen) self.uiAO.wao_next.clicked.connect(self.loopOnce) self.uiAO.wao_resetSR.clicked.connect(self.resetSR) # self.uiAO.wao_actionHelp_Contents.triggered.connect(self.on_help_triggered) self.uiAO.wao_allTarget.stateChanged.connect(self.updateAllTarget) self.uiAO.wao_forever.stateChanged.connect(self.updateForever) self.uiAO.wao_atmosphere.clicked[bool].connect(self.set_see_atmos) self.dispStatsInTerminal = False self.uiAO.wao_clearSR.clicked.connect(self.clearSR) # self.uiAO.actionStats_in_Terminal.toggled.connect(self.updateStatsInTerminal) self.uiAO.wao_run.setDisabled(True) self.uiAO.wao_next.setDisabled(True) self.uiAO.wao_unzoom.setDisabled(True) self.uiAO.wao_resetSR.setDisabled(True) p1 = self.uiAO.wao_SRPlotWindow.addPlot(title='SR evolution') self.curveSRSE = p1.plot(pen=(255, 0, 0), symbolBrush=(255, 0, 0), name="SR SE") self.curveSRLE = p1.plot(pen=(0, 0, 255), symbolBrush=(0, 0, 255), name="SR LE") self.SRCrossX = {} # type: Dict[str, pg.ScatterPlotItem] self.SRCrossY = {} # type: Dict[str, pg.ScatterPlotItem] self.SRcircles = {} # type: Dict[str, pg.ScatterPlotItem] self.natm = 0 self.nwfs = 0 self.ndm = 0 self.ntar = 0 self.PSFzoom = 50 self.uiAO.wao_SRDock.setVisible(False) self.addDockWidget(Qt.DockWidgetArea(1), self.uiBase.wao_ConfigDock) self.addDockWidget(Qt.DockWidgetArea(1), self.uiBase.wao_DisplayDock) self.uiBase.wao_ConfigDock.setFloating(False) self.uiBase.wao_DisplayDock.setFloating(False) if expert: from .widget_ao_expert import WidgetAOExpert self.expertWidget = WidgetAOExpert() # self.expertWidget.setupUi(self) self.addDockWidget( Qt.DockWidgetArea(1), self.expertWidget.uiExpert.wao_expertDock) self.expertWidget.uiExpert.wao_expertDock.setFloating(False) self.adjustSize() if configFile is not None: self.uiBase.wao_selectConfig.clear() self.uiBase.wao_selectConfig.addItem(configFile) self.loadConfig() self.initConfig()