def new_dock_window_obj(self, widget: 'QWidget', config=None): """ 以窗口对象插入,适用于已经创建的窗口。 :param widget: :param config: :return: """ from pyminer2.pmutil import get_main_window () dock_name = config['name'] text = config['text'] side = config['side'] widget = widget dock = get_main_window().add_widget_on_dock(dock_name=dock_name, widget=widget, text=text, side='left') if side in {'top', 'bottom', 'left', 'right'}: import pyminer2.pmutil w2 = get_dock_by_position(side) pyminer2.pmutil.get_main_window().tabifyDockWidget(w2, dock) pyminer2.pmutil.get_main_window() dock.raise_into_view() return widget
def process_visibility_actions(self, e: ActionWithMessage): main_window = get_main_window() dws = main_window.dock_widgets if e.message in ['load_standard_layout']: main_window.load_predefined_layout('standard') if e.message in dws.keys(): dws[e.message].setVisible(e.isChecked())
def __init__(self, parent=None): super(TopLevelWidget, self).__init__(parent) self.setWindowFlags(Qt.Popup | Qt.FramelessWindowHint) # 点击其他位置之后,可以隐藏。 self.setLayout(QVBoxLayout()) self.title_layout = QHBoxLayout() self.layout().addLayout(self.title_layout) b = QPushButton('x') self.title_layout.addWidget(QLabel()) self.title_layout.addWidget(b) b.setMaximumWidth(20) b.clicked.connect(self.hide) self.central_widget = None get_main_window().window_geometry_changed_signal.connect(self.refresh_position) self.position: QPoint = None self.width: int = 500 self.height = 500
def add_settings_panel(text: str, panel_content: List[Tuple[str, str]]): """ 添加设置面板 :param text: :param panel_content: :return: """ return get_main_window().main_option_form.add_settings_panel( text, panel_content)
def append_to_toolbar(self, widget_class: 'QWidget', config=None): from pyminer2.pmutil import get_main_window button_name = config['name'] toolbar_name = config['toolbar'] widget = widget_class() toolbar = get_main_window().toolbars.get(toolbar_name) toolbar.add_widget(button_name, widget) # PluginInterface.get_toolbar(toolbar_name).add_widget( # button_name, widget) return widget
def closeEvent(self, event: QCloseEvent): from pyminer2.pmutil import get_main_window main_window = get_main_window() w = self.widget() if hasattr(w, 'on_closed_action'): if w.on_closed_action == 'delete': main_window.delete_dock_widget(self.name) return self.hide() event.accept() main_window.refresh_view_configs()
def new_dock_window(self, widget_class: 'QWidget', config=None): from pyminer2.pmutil import get_main_window () dock_name = config['name'] text = config['text'] side = config['side'] widget = widget_class() dock = get_main_window().add_widget_on_dock(dock_name=dock_name, widget=widget, text=text, side=side) if side in {'top', 'bottom', 'left', 'right'}: import pyminer2.pmutil w2 = get_dock_by_position(side) pyminer2.pmutil.get_main_window().tabifyDockWidget(w2, dock) pyminer2.pmutil.get_main_window() dock.raise_into_view() return widget
def load_theme(style: str): """ 设置主题。 :param style: :return: """ from pyminer2.pmutil import get_main_window app = QApplication.instance() mw = get_main_window() if style == 'Fusion': mw.setStyleSheet('') app.setStyleSheet('') standard_ss = mw.get_stylesheet('standard') fusion_ss = mw.get_stylesheet('Fusion') app.setStyleSheet(standard_ss + '\n' + fusion_ss) app.setStyle('Fusion') elif style == 'Qdarkstyle': app.setStyleSheet('') mw.setStyleSheet('') black_ss = mw.get_stylesheet('Qdarkstyle') app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyqt5')) app.setStyleSheet(app.styleSheet() + '\n' + black_ss) app.setStyle('Windows') elif style.lower() == 'windowsvista': app.setStyleSheet('') mw.setStyleSheet('') app.setStyleSheet(mw.get_stylesheet('windowsvista')) app.setStyle("windowsvista") elif style.lower() == 'windows': app.setStyleSheet('') mw.setStyleSheet('') app.setStyleSheet(mw.get_stylesheet('Windows')) app.setStyle("Windows")
def get_window_geometry_changed_signal(): return get_main_window().window_geometry_changed_signal
def get_settings_changed_signal() -> 'pyqtSignal': return get_main_window().settings_changed_signal
def get_toolbar(toolbar_name: str) -> 'PMGToolBar': tb = get_main_window().toolbars.get(toolbar_name) return tb
def get_main_window_geometry() -> 'QRect': return get_main_window().geometry()
def refresh_position(self) -> None: if self.position is None: return mw = get_main_window() self.setGeometry(mw.geometry().x() + self.position.x(), mw.geometry().y() + self.position.y() + 16, self.width, self.height)
def get_events_ready_signal(): return get_main_window().events_ready_signal
def get_settings() -> Dict[str, str]: return get_main_window().settings
def open_script(self): editor: 'PMCodeEditTabWidget' = get_main_window().get_dock_widget( 'code_editor').widget() editor.open_file()
def get_close_signal(): return get_main_window().close_signal
def switch_toolbar(toolbar_name: str, switch_only: bool = True): app = get_main_window() app.switch_toolbar(toolbar_name, switch_only)
def get_default_font(): app = get_main_window() return os.path.join(app.font_dir, app.default_font)
def raise_dock_into_view(dock_widget_name: str): return get_main_window().raise_dock_into_view(dock_widget_name)
def new_script(self): editor: 'PMCodeEditTabWidget' = get_main_window().get_dock_widget( 'code_editor').widget() editor.create_new_editor_tab()
def get_layouts_ready_signal(): return get_main_window().layouts_ready_signal
def get_widgets_ready_signal(): return get_main_window().widgets_ready_signal
def get_resize_signal(): return get_main_window().resize_signal