def displayMetaDataSubWindow(self, tableTitle, dataset): """ Creates a subwindow that displays a DICOM image's metadata. """ try: logger.info('ViewMetaData.displayMetaDataSubWindow called.') title = "DICOM Image Metadata" widget = QWidget() widget.setLayout(QVBoxLayout()) metaDataSubWindow = QMdiSubWindow(self) metaDataSubWindow.setAttribute(Qt.WA_DeleteOnClose) metaDataSubWindow.setWidget(widget) metaDataSubWindow.setObjectName("metaData_Window") metaDataSubWindow.setWindowTitle(title) height, width = self.getMDIAreaDimensions() metaDataSubWindow.setGeometry(width * 0.4,0,width*0.6,height) lblImageName = QLabel('<H4>' + tableTitle + '</H4>') widget.layout().addWidget(lblImageName) DICOM_Metadata_Table_View = buildTableView(self, dataset) widget.layout().addWidget(DICOM_Metadata_Table_View) self.mdiArea.addSubWindow(metaDataSubWindow) metaDataSubWindow.show() except Exception as e: print('Error in : ViewMetaData.displayMetaDataSubWindow' + str(e)) logger.error('Error in : ViewMetaData.displayMetaDataSubWindow' + str(e))
def onFileNew(self): newDoc = QMdiSubWindow(self) newDoc.setWindowTitle('新文档 ' + str(self.newDocIndex)) self.newDocIndex += 1 newDoc.setWidget(QPlainTextEdit(newDoc)) self.mdiArea.addSubWindow(newDoc) newDoc.show()
def windowaction(self, q): type = q.text() print("Triggered : %s" % type) if type == "新建": # 子窗口增加一个 self.count = self.count + 1 # 实例化多文档界面对象 sub = QMdiSubWindow() # 向sub内部添加控件 sub.setWidget(QTextEdit()) sub.setWindowTitle("subWindow %d" % self.count) self.mdi.addSubWindow(sub) sub.show() #sub.hide() elif type == "级联": self.mdi.cascadeSubWindows() elif type == "平铺": self.mdi.tileSubWindows() elif type == "关闭全部": self.mdi.closeAllSubWindows() elif type == "关闭活动窗口": self.mdi.closeActiveSubWindow() elif type == "测试": lst = self.mdi.subWindowList() print(lst)
def on_triggered_menu_view_new(self): sub = QMdiSubWindow() sub.setWidget(QTextEdit()) sub.setWindowTitle("MDI [%d]" % len(self.mdiArea.subWindowList())) self.mdiArea.addSubWindow(sub) sub.show() return
def toolbar_action(self, q): type = q.text() print("Triggered : %s" % type) if type == "新建窗口": # 子窗口增加一个 self.count += 1 # 实例化多文档界面对象 sub = QMdiSubWindow() # 向sub内部添加控件 sub.setWidget(QTextEdit()) sub.setWindowTitle("subWindow %d" % self.count) self.mdiArea.addSubWindow(sub) sub.show() elif type == "新建九宫格": pictures = [ 'C:\\Users\\Admin\\Pictures\\pictures\\0' + str(i) + '.png' for i in range(1, 10) ] for p in pictures: sub = QMdiSubWindow() # 创建一个QLabel,用来显示图片 label = QLabel(sub) label.setGeometry(QRect(40, 40, 572, 857)) png = QPixmap(p) label.setPixmap(png) label.setScaledContents(True) # 子窗口增加一个 self.count += 1 sub.setWindowTitle("subWindow %d" % self.count) self.mdiArea.addSubWindow(sub) sub.show() self.mdiArea.tileSubWindows()
def agregar_ventana(self): MdiAplicacion.contador += 1 subventana = QMdiSubWindow() subventana.setWindowTitle(f'Subventana {MdiAplicacion.contador}') self.mdi.addSubWindow(subventana) subventana.show()
def add_window(self, widget: QWidget, tab_name: str = None): sub_window = QMdiSubWindow() sub_window.setWidget(widget) if tab_name is not None: sub_window.setWindowTitle(tab_name) self.subwindows[widget] = sub_window self.ui.mdi_area.addSubWindow(sub_window)
def _setup_project_window(self): from views import ProjectWindow window = QMdiSubWindow() window.setWidget(ProjectWindow()) window.setWindowTitle('Projects') window.hide() self.ui.mdiArea.addSubWindow(window) return window
def onFileNew(self): newDoc = QMdiSubWindow(self) newDoc.setAttribute(Qt.WA_DeleteOnClose) newDoc.setWindowTitle('新文档 ' + str(self.newDocIndex)) self.newDocIndex += 1 newDoc.setWidget(QPlainTextEdit(newDoc)) self.mdiArea.addSubWindow(newDoc) newDoc.show()
def _setup_effort_window(self): from views import EffortWindow window = QMdiSubWindow() window.setWidget(EffortWindow()) window.setWindowTitle('Percent Effort') window.hide() self.ui.mdiArea.addSubWindow(window) return window
def new_windows(self): sub = QMdiSubWindow() sub.setWidget(QTextEdit()) sub.setWindowTitle("New Article") sub.setGeometry(100, 100, 600, 320) self.mdi.addSubWindow(sub) sub.show()
def _setup_employee_window(self): from views import EmployeeWindow window = QMdiSubWindow() window.setWidget(EmployeeWindow()) window.setWindowTitle('Employees') window.hide() self.ui.mdiArea.addSubWindow(window) return window
def __on_open(self): window = QMdiSubWindow() window.setAttribute(Qt.WA_DeleteOnClose, True) window.setWindowTitle('Sub Window ' + str(MyMainWindow.window_index)) window.resize(300, 200) self.mdi_area.addSubWindow(window) window.show() MyMainWindow.window_index += 1
def open_python_editor(self): editor = PyCodeEdit(server_script=server.__file__) # we add the image browsing widget sub = QMdiSubWindow(None, Qt.WindowShadeButtonHint) sub.setWindowTitle("Editor") sub.setWidget(editor) sub.setWindowIcon(QIcon("gui/resources/icons/python.ico")) self.mdiArea.addSubWindow(sub) workspace.add(sub) sub.show()
def WindowTrig(self, p): if p.text() == "&New": MDIWindow.count = MDIWindow.count + 1 sub = QMdiSubWindow() sub.setWidget(QTextEdit()) sub.setWindowTitle("Sub Window" + str(MDIWindow.count)) self.mdi.addSubWindow(sub) sub.show() if p.text() == "&Cascade": self.mdi.cascadeSubWindows() if p.text() == "&Tile": self.mdi.tileSubWindows()
def window_action(self, action): print("点击", action.data()) if action.data() == "new": MainWin.count += 1 sub_win = QMdiSubWindow() sub_win.setWidget(QTextEdit()) sub_win.setWindowTitle("子窗口 %d" % MainWin.count) self.mdi_area.addSubWindow(sub_win) if action.data() == "csscade": self.mdi_area.cascadeSubWindows() # 级联模式排列 if action.data() == "tiled": self.mdi_area.tileSubWindows() # 平铺排列
def ongletLivre(self, option): """ Formulaire de saisie des infos par livre """ # print(self.ongletLivre.__doc__) self.mdi = QMdiArea() self.setCentralWidget(self.mdi) diaLivre = QMdiSubWindow() diaLivre.left = 10 diaLivre.top = 10 diaLivre.width = 500 diaLivre.height = 200 diaLivre.setWindowTitle(self.ongletLivre.__doc__) diaLivre.titreLabel = QLabel('Titre livre', diaLivre) diaLivre.titreLabel.move(50, 50) diaLivre.titreTxBox = QLineEdit(diaLivre) diaLivre.titreTxBox.move(200, 50) titre = diaLivre.titreTxBox.text() diaLivre.auteurLabel = QLabel('Auteur', diaLivre) diaLivre.auteurLabel.move(50, 75) diaLivre.auteurTxBox = QLineEdit(diaLivre) diaLivre.auteurTxBox.move(200, 75) auteur = diaLivre.auteurTxBox.text() diaLivre.genreLabel = QLabel('Genre', diaLivre) diaLivre.genreLabel.move(50, 100) diaLivre.genreTxBox = QLineEdit(diaLivre) diaLivre.genreTxBox.move(200, 100) genre = diaLivre.genreTxBox.text() diaLivre.bValide = QPushButton('Valider', diaLivre) diaLivre.bValide.setToolTip('Valider la saisie') diaLivre.bValide.move(300, 150) diaLivre.bValide.clicked.connect(self.accept) # self.bValide.clicked.connect(self.on_click) diaLivre.bCancel = QPushButton('Abandon', diaLivre) diaLivre.bCancel.setToolTip('Abandonner la saisie') diaLivre.bCancel.move(400, 150) diaLivre.bCancel.clicked.connect(self.reject) self.mdi.addSubWindow(diaLivre) diaLivre.show() print("Titre : " + titre + " ,auteur : " + auteur + " ,genre : " + genre) # AppBDgestEnvoiLivres.ajoutLivre([titre,auteur,genre]) if (option == "ajout"): AppBDgestEnvoiLivres.ajoutLivre([titre, auteur, genre]) elif (option == "recherche"): AppBDgestEnvoiLivres.rechercheLivre() return ([titre, auteur, genre])
def count(self): # 使用 mdi 类来管理,判断当前窗口是否包含对象 # 如果不包含,创建。包含,不创建。 if self.mdi.currentSubWindow() == None: sub = QMdiSubWindow() # 每次 sub 页面关闭,都会销毁包含进来的对象 # 所以将包含的 半径、角度 等对象封装为一个类,或每次都新建 self.w = PopWindow() sub.setWidget(self.w.get_window()) sub.setWindowTitle("弹出窗口") # 如果不包含,弹出对话框可以浮动于任何位置,否则只能位于 mdi 区域内 self.mdi.addSubWindow(sub) sub.show()
def maneja_acciones(self, mi_accion): if (mi_accion.text() == 'Nueva Ventana'): self.num_ventanas += 1 subventana = QMdiSubWindow() subventana.setWidget(QTextEdit()) subventana.setWindowTitle('Subventana nº {}'.format( self.num_ventanas)) self.mdi_area.addSubWindow(subventana) subventana.show() return if (mi_accion.text() == 'Distribuir Cascada'): self.mdi_area.cascadeSubWindows() if (mi_accion.text() == 'Distribuir Mosaico'): self.mdi_area.tileSubWindows()
def addNewFichaPersona(self, personPhoto_FilePath, personData, personExtension): fichaPersona = Ficha_Persona() fichaPersona.setPersonPhoto(personPhoto_FilePath) fichaPersona.setPersonData(personData) fichaPersona.setPersonPhonenumber(personExtension) subventana = QMdiSubWindow() subventana.setWidget(fichaPersona) subventana.setWindowTitle('Subventana nº {}'.format(self.num_ventanas)) self.mdi_area.addSubWindow(subventana) subventana.show() self.mdi_area.tileSubWindows()
def setup(self): sub1=QMdiSubWindow() sub1.setWidget(self.region1_plot) sub1.setWindowTitle('Region 1 Plot') sub2=QMdiSubWindow() sub2.setWidget(self.region2_plot) sub2.setWindowTitle('Region 2 Plot') sub3=QMdiSubWindow() sub3.setWidget(self.total_plot) sub3.setWindowTitle('Total Plot') sub4=QMdiSubWindow() sub4.setWidget(self.time_plot) sub4.setWindowTitle('Time Plot') self.mdi=QMdiArea() self.mdi.addSubWindow(sub1) self.mdi.addSubWindow(sub2) self.mdi.addSubWindow(sub3) self.mdi.addSubWindow(sub4) self.mdi.tileSubWindows() self.setCentralWidget(self.mdi)
def showWindow(self): # 创建一个新的窗口 subwindow = QMdiSubWindow() # 为子窗口添加组件 self.browser = QWebEngineView() subwindow.setGeometry(0, 0, 1200, 600) # 加载外部的web界面 self.browser.load(QUrl('http://sso.lzad.cc/#/')) subwindow.setWindowTitle('落地页') subwindow.setWidget(self.browser) # 将字窗口添加到区域QmdiArea self.area.addSubWindow(subwindow) # 子窗口显示 subwindow.show()
def onFileOpen(self): path, _ = QFileDialog.getOpenFileName(self, '打开文件', '', '文本文件 (*.txt)') if path: try: with open(path, 'rU') as f: text = f.read() except Exception as e: self.msgCritical(str(e)) else: openDoc = QMdiSubWindow(self) openDoc.setWindowTitle(path) txtEdit = QPlainTextEdit(openDoc) txtEdit.setPlainText(text) openDoc.setWidget(txtEdit) self.mdiArea.addSubWindow(openDoc) openDoc.show()
def treeItemClicked(self, item, column): tab = self.get_treeItem_tab(item.text(column)) if tab is not None: tab.setFocus() else: if item.text(column) == 'Perfmon': self.treeItemWindow_open(item) else: newDoc = QMdiSubWindow(self) newDoc.setAttribute(Qt.WA_DeleteOnClose) newDoc.setWindowTitle(item.text(column)) self.newDocIndex += 1 newDoc.setWidget(QPlainTextEdit( item.text(column) * 10, newDoc)) self.mdiArea.addSubWindow(newDoc) newDoc.show()
def windowaction(self, q): print("triggered") if q.text() == "New": MainWindow.count = MainWindow.count + 1 sub = QMdiSubWindow() sub.setWidget(QTextEdit()) sub.setWindowTitle("subwindow" + str(MainWindow.count)) self.mdi.addSubWindow(sub) sub.show() if q.text() == "cascade": self.mdi.cascadeSubWindows() if q.text() == "Tiled": self.mdi.tileSubWindows()
def window_triggered(self, p): if p.text() == 'New': MyMainWindow.count += 1 sub = QMdiSubWindow() widget = self.widget_classes[MyMainWindow.count % 2]() sub.setWidget(widget) sub.setWindowTitle('Sub Window {}'.format(MyMainWindow.count)) self.mdi.addSubWindow(sub) sub.show() if p.text() == 'Cascade': self.mdi.cascadeSubWindows() if p.text() == 'Tiled': self.mdi.tileSubWindows()
def WindowTrig(self, p): if p.text() == "New": MDIWindow.count = MDIWindow.count + 1 sub = QMdiSubWindow() sub.setWidget(QTextEdit()) self.name = "Sub Window" + str(MDIWindow.count) sub.setWindowTitle("Sub Window" + str(MDIWindow.count)) self.mdi.addSubWindow(sub) #self.setWindowTitle("MDI Application"+"-"+self.name) sub.show() if p.text() == "cascade": self.mdi.cascadeSubWindows() if p.text() == "Tiled": self.mdi.tileSubWindows()
class mainwindow(QMainWindow): def __init__(self): super(mainwindow, self).__init__() layout = QHBoxLayout() w = QWidget() w.setLayout(layout) self.setCentralWidget(w) self.new_subwindow_btn = QPushButton("新建") layout.addWidget(self.new_subwindow_btn) self.new_subwindow_btn.clicked.connect(self.count) self.mdi = QMdiArea() layout.addWidget(self.mdi) def count(self): subwindow_widget = QWidget() subwindow_layout = QGridLayout() self.sub = QMdiSubWindow() radis_label = QLabel("半径") radis_line = QLineEdit() subwindow_layout.addWidget(radis_label, 0, 0) subwindow_layout.addWidget(radis_line, 0, 1) angle_label = QLabel("角度") angle_line = QLineEdit() subwindow_layout.addWidget(angle_label, 1, 0) subwindow_layout.addWidget(angle_line, 1, 1) radis_label = QLabel("螺距") radis_line = QLineEdit() subwindow_layout.addWidget(radis_label, 2, 0) subwindow_layout.addWidget(radis_line, 2, 1) subwindow_widget.setLayout(subwindow_layout) self.sub.setWidget(subwindow_widget) self.sub.setWindowTitle("Sub Window") self.mdi.addSubWindow(self.sub) self.sub.show() def re_open(self): self.new_subwindow_btn.setEnabled(True)
def addScriptWindow(self): """ Opens a template in the Python script editor :return: None """ subWin = QMdiSubWindow() child = CodeEditor(self) subWin.setWidget(child) child.setObjectName('script:' + str(uuid.uuid1())) self.mdiArea.setWindowIcon(QIcon('content/images/python_logo.svg')) self.mdiArea.addSubWindow(subWin) subWin.setWindowState(QtCore.Qt.WindowMaximized) subWin.setWindowTitle('untitled.py') file = open("templates/script_template.py", "r") templateText = file.read() child.setPlainText(templateText)
def createCANTableSubWindow(self): self.can_table = QTableWidget(50, 9) sub = QMdiSubWindow() sub.setWidget(self.can_table) sub.setWindowTitle("Raw CAN Frames") self.mdi.addSubWindow(sub) sub.setGeometry(0, 0, 400, 800) self.can_table.verticalHeader().hide() self.can_table.setHorizontalHeaderItem(0, QTableWidgetItem("ID")) self.can_table.setColumnWidth(0, 10) for i in range(1, 9): item = QTableWidgetItem(str(i - 1)) self.can_table.setHorizontalHeaderItem(i, item) self.can_table.setColumnWidth(i, 10) sub.show()
def add_window(self): UI.count = UI.count + 1 # Create Sub Windows sub = QMdiSubWindow() # Do stuff in the sub windows sub.setWidget(QTextEdit()) # Set The Titlebar or the Sub Window sub.setWindowTitle("Subby Window " + str(UI.count)) # Add The Sub Window Into Our MDI Widget self.mdi.addSubWindow(sub) # Show the new sub window sub.show() # Position the sub windows # tile them # self.mdi.tileSubWindows() # Cascade them self.mdi.cascadeSubWindows()
def plot(self): # 数据列 columns = self.data.columns data_length = self.data.shape[0] for i, col in enumerate(columns): # 时域数据x轴间隔 step = round((data_length / int(self.sampling_fre)) / data_length * 1000000) / 1000000 # 频谱数据 fre, am = fourier_transform(self.data[col], int(self.sampling_fre)) am = Series(am) am = am.round(decimals=6) sub = QMdiSubWindow() fig = plt.figure() if self.mp: title = '频谱/时域信号 - ' + self.mp[i] else: title = '频谱/时域信号 - ' fig.suptitle(title) axes1 = fig.add_subplot(211) axes2 = fig.add_subplot(212) axes1.grid(True, color="grey", linestyle='--') axes2.grid(True, color="grey", linestyle='--') axes1.plot(fre, am, color='blue', linewidth=0.5) axes2.plot([step * n for n in range(data_length)], self.data[col], color='blue', linewidth=0.5) axes1.set_xlabel('频率(Hz)') axes1.set_ylabel('加速度(m/s^2)') axes2.set_xlabel('时间(s)') axes2.set_ylabel('加速度(m/s^2)') canvas = FigureCanvas(fig) # 向sub内部添加控件 sub.setWidget(canvas) # 子窗口增加一个 self.count += 1 sub.setWindowTitle(title) self.mdiArea.addSubWindow(sub) sub.show() self.mdiArea.tileSubWindows()
def WindowTrig(self, p): #===================================================================================================================================================================== if p.text() == "Patron Memento": subState = QMdiSubWindow() subState.resize(400, 400) widgetState = QWidget() self.layoutState = QGridLayout(widgetState) self.layoutState.setContentsMargins(0, 0, 0, 0) self.layoutState.setObjectName("gridState") labelEstado = QLabel() labelEstado.setText("Memento") self.layoutState.addWidget(labelEstado, 0, 1, 1, 1) self.comboEstado = QComboBox() self.comboEstado.addItem("blue") self.comboEstado.addItem("yellow") self.comboEstado.addItem("red") self.comboEstado.addItem("green") self.layoutState.addWidget(self.comboEstado, 0, 2, 1, 1) btnanterior = QPushButton('Color Anterior') self.layoutState.addWidget(btnanterior, 1, 2, 1, 1) btnanterior.clicked.connect(self.button_anterior) btnnext = QPushButton('Color Siguiente') self.layoutState.addWidget(btnnext, 1, 4, 1, 1) btnnext.clicked.connect(self.button_next) btnver = QPushButton('Ver') self.layoutState.addWidget(btnver, 1, 6, 1, 1) btnver.clicked.connect(self.button_ver) subState.setWidget(widgetState) subState.setWindowTitle("Patrón Memento") self.mdi.addSubWindow(subState) subState.show()
def open_file(self, msg): file_name = PyQt5.QtWidgets.QFileDialog.getOpenFileName(self,'Open Image',' ', 'FITS Files (*.fits *.fit *.fts);;HDR Images (*.exr);;' 'Images (*.tiff *.tif *.png *.jpeg *.jpg *.bmp *.dib ' '*.jpe *.pbm *.pgm *.ppm *.sr *.ras *.jp2);;All (*)') if(file_name[0]): # Load the image from file print(file_name[0]) im=Image(file_name[0]) pixmap = PyQt5.QtGui.QPixmap.fromImage(im.toqimage()) #we add the image browsing widget sub = QMdiSubWindow(None, Qt.WindowShadeButtonHint) sub.setWindowTitle("Browse") label = QLabel() label.setPixmap(pixmap) sub.setWidget(label) self.mdiArea.addSubWindow(sub) workspace.add(sub) sub.show()
def file_action(self, q): if q.text() == "New": MainWindow.count = MainWindow.count + 1 sub = QMdiSubWindow() sub.setWidget(QTextEdit()) sub.setWindowTitle("subwindow" + str(MainWindow.count)) self.mdi.addSubWindow(sub) sub.show() if q.text() == "Open...": options = QFileDialog.Options() # options |= QFileDialog.DontUseNativeDialog fileName, _ = QFileDialog.getOpenFileName( self, "QFileDialog.getOpenFileName()", "", "CODE V Files (*.seq)", options=options) if fileName: logging.debug("open file: %s", fileName) self.open_file(fileName)
def executeScript(self): """ Executes the script in the active editor window and displays it. """ # Get the active window so we can get the script and match the title activeWin = self.mdiArea.activeSubWindow() scriptTitle = activeWin.windowTitle() # If this isn't a script window we need to handle it differently if ".py" not in scriptTitle: self.statusBar().showMessage( 'Cannot Execute From a Non-Script Window') return # See if the 3D view is somewhere in the MDI subwindows subWin = self.getSubwindowByName(scriptTitle + " (3D)") # If the 3D view doesn't exist, create it if subWin == None: # Set up a new 3D view window subWin = QMdiSubWindow() # self.mdiArea.setWindowIcon(QIcon('content/images/python_logo.svg')) self.mdiArea.addSubWindow(subWin) child = Viewer3D(self) subWin.setWidget(child) subWin.setWindowTitle(scriptTitle + " (3D)") # If we don't do this the window title bar can disappear subWin.setMinimumSize(100, 300) subWin.setWindowState(QtCore.Qt.WindowMaximized) # For now display a default object child.InitDriver() child._display.Test() # Extract the text from the script window, execute it, and display the result scriptText = activeWin.widget().toPlainText() print(scriptText)