class QtAbout(QDialog): def __init__(self): super().__init__() self.layout = QVBoxLayout() # Description title_label = QLabel( "<b>napari: a multi-dimensional image viewer for python</b>") title_label.setTextInteractionFlags(Qt.TextSelectableByMouse) self.layout.addWidget(title_label) # Add information self.infoTextBox = QTextEdit() self.infoTextBox.setTextInteractionFlags(Qt.TextSelectableByMouse) self.infoTextBox.setLineWrapMode(QTextEdit.NoWrap) # Add text copy button self.infoCopyButton = QtCopyToClipboardButton(self.infoTextBox) self.info_layout = QHBoxLayout() self.info_layout.addWidget(self.infoTextBox, 1) self.info_layout.addWidget(self.infoCopyButton, 0, Qt.AlignTop) self.info_layout.setAlignment(Qt.AlignTop) self.layout.addLayout(self.info_layout) self.infoTextBox.setText(sys_info(as_html=True)) self.infoTextBox.setMinimumSize( self.infoTextBox.document().size().width() + 19, self.infoTextBox.document().size().height() + 10, ) self.layout.addWidget(QLabel('<b>citation information:</b>')) self.citationTextBox = QTextEdit(citation_text) self.citationTextBox.setFixedHeight(64) self.citationCopyButton = QtCopyToClipboardButton(self.citationTextBox) self.citation_layout = QHBoxLayout() self.citation_layout.addWidget(self.citationTextBox, 1) self.citation_layout.addWidget(self.citationCopyButton, 0, Qt.AlignTop) self.layout.addLayout(self.citation_layout) self.setLayout(self.layout) @staticmethod def showAbout(qt_viewer): d = QtAbout() d.setObjectName('QtAbout') d.setStyleSheet(qt_viewer.styleSheet()) d.setWindowTitle('About') d.setWindowModality(Qt.ApplicationModal) d.exec_()
class QtAbout(QDialog): """Qt dialog window for displaying 'About napari' information. Attributes ---------- citationCopyButton : napari._qt.qt_about.QtCopyToClipboardButton Button to copy citation information to the clipboard. citationTextBox : qtpy.QtWidgets.QTextEdit Text box containing napari citation information. citation_layout : qtpy.QtWidgets.QHBoxLayout Layout widget for napari citation information. infoCopyButton : napari._qt.qt_about.QtCopyToClipboardButton Button to copy napari version information to the clipboard. info_layout : qtpy.QtWidgets.QHBoxLayout Layout widget for napari version information. infoTextBox : qtpy.QtWidgets.QTextEdit Text box containing napari version information. layout : qtpy.QtWidgets.QVBoxLayout Layout widget for the entire 'About napari' dialog. """ def __init__(self): super().__init__() self.layout = QVBoxLayout() # Description title_label = QLabel( "<b>napari: a multi-dimensional image viewer for python</b>") title_label.setTextInteractionFlags(Qt.TextSelectableByMouse) self.layout.addWidget(title_label) # Add information self.infoTextBox = QTextEdit() self.infoTextBox.setTextInteractionFlags(Qt.TextSelectableByMouse) self.infoTextBox.setLineWrapMode(QTextEdit.NoWrap) # Add text copy button self.infoCopyButton = QtCopyToClipboardButton(self.infoTextBox) self.info_layout = QHBoxLayout() self.info_layout.addWidget(self.infoTextBox, 1) self.info_layout.addWidget(self.infoCopyButton, 0, Qt.AlignTop) self.info_layout.setAlignment(Qt.AlignTop) self.layout.addLayout(self.info_layout) self.infoTextBox.setText(sys_info(as_html=True)) self.infoTextBox.setMinimumSize( self.infoTextBox.document().size().width() + 19, self.infoTextBox.document().size().height() + 10, ) self.layout.addWidget(QLabel('<b>citation information:</b>')) self.citationTextBox = QTextEdit(citation_text) self.citationTextBox.setFixedHeight(64) self.citationCopyButton = QtCopyToClipboardButton(self.citationTextBox) self.citation_layout = QHBoxLayout() self.citation_layout.addWidget(self.citationTextBox, 1) self.citation_layout.addWidget(self.citationCopyButton, 0, Qt.AlignTop) self.layout.addLayout(self.citation_layout) self.setLayout(self.layout) @staticmethod def showAbout(qt_viewer): """Display the 'About napari' dialog box. Paramters --------- qt_viewer : QtViewer QtViewer instance that the `About napari` dialog box belongs to. """ d = QtAbout() d.setObjectName('QtAbout') d.setStyleSheet(qt_viewer.styleSheet()) d.setWindowTitle('About') d.setWindowModality(Qt.ApplicationModal) d.exec_()
class QtAbout(QDialog): """Qt dialog window for displaying 'About napari' information. Parameters ---------- parent : QWidget, optional Parent of the dialog, to correctly inherit and apply theme. Default is None. Attributes ---------- citationCopyButton : napari._qt.qt_about.QtCopyToClipboardButton Button to copy citation information to the clipboard. citationTextBox : qtpy.QtWidgets.QTextEdit Text box containing napari citation information. citation_layout : qtpy.QtWidgets.QHBoxLayout Layout widget for napari citation information. infoCopyButton : napari._qt.qt_about.QtCopyToClipboardButton Button to copy napari version information to the clipboard. info_layout : qtpy.QtWidgets.QHBoxLayout Layout widget for napari version information. infoTextBox : qtpy.QtWidgets.QTextEdit Text box containing napari version information. layout : qtpy.QtWidgets.QVBoxLayout Layout widget for the entire 'About napari' dialog. """ def __init__(self, parent=None): super().__init__(parent) self.layout = QVBoxLayout() # Description title_label = QLabel( trans._( "<b>napari: a multi-dimensional image viewer for python</b>")) title_label.setTextInteractionFlags(Qt.TextSelectableByMouse) self.layout.addWidget(title_label) # Add information self.infoTextBox = QTextEdit() self.infoTextBox.setTextInteractionFlags(Qt.TextSelectableByMouse) self.infoTextBox.setLineWrapMode(QTextEdit.NoWrap) # Add text copy button self.infoCopyButton = QtCopyToClipboardButton(self.infoTextBox) self.info_layout = QHBoxLayout() self.info_layout.addWidget(self.infoTextBox, 1) self.info_layout.addWidget(self.infoCopyButton, 0, Qt.AlignTop) self.info_layout.setAlignment(Qt.AlignTop) self.layout.addLayout(self.info_layout) self.infoTextBox.setText(sys_info(as_html=True)) self.infoTextBox.setMinimumSize( int(self.infoTextBox.document().size().width() + 19), int(min(self.infoTextBox.document().size().height() + 10, 500)), ) self.layout.addWidget(QLabel(trans._('<b>citation information:</b>'))) self.citationTextBox = QTextEdit(citation_text) self.citationTextBox.setFixedHeight(64) self.citationCopyButton = QtCopyToClipboardButton(self.citationTextBox) self.citation_layout = QHBoxLayout() self.citation_layout.addWidget(self.citationTextBox, 1) self.citation_layout.addWidget(self.citationCopyButton, 0, Qt.AlignTop) self.layout.addLayout(self.citation_layout) self.setLayout(self.layout) @staticmethod def showAbout(parent=None): """Display the 'About napari' dialog box. Parameters ---------- parent : QWidget, optional Parent of the dialog, to correctly inherit and apply theme. Default is None. """ d = QtAbout(parent) d.setObjectName('QtAbout') d.setWindowTitle(trans._('About')) d.setWindowModality(Qt.ApplicationModal) d.exec_()
class dataComplete(QWidget): """数据补充的界面""" def __init__(self): super(dataComplete, self).__init__() self.n = 1 self.start = None self.end = None self.text = '' self.initUI() def initUI(self): mainLayout = QHBoxLayout() self.setLayout(mainLayout) vl1 = QVBoxLayout() vl2 = QVBoxLayout() # 按钮 lastData = QPushButton('Last n days Data') todayButton = QPushButton('Today Data') periodData = QPushButton('Period Data') # N lable 提示 以及读取 daysChoose = QLineEdit(self) daysChoose.textChanged[str].connect(self.onChanged) daysChooseHint = QLabel('PLZ Enter n:') daysChooseHint.setMaximumHeight(10) todayButton.clicked.connect(dailyUpdate) lastData.clicked.connect(self.showMessage) vl1.addWidget(todayButton) vl1.addWidget(daysChooseHint) vl1.addWidget(daysChoose) vl1.addWidget(lastData) vl1.addWidget(periodData) # 右侧消息框 # messageBox = QLabel('Here are some code things') self.logMoniter = QTextEdit(self) self.logMoniter.setMinimumSize(25, 300) # logMoniter.setBaseSize(10, 300) vl2.addWidget(self.logMoniter) mainLayout.addLayout(vl1) mainLayout.addLayout(vl2) self.move(300, 300) self.setWindowTitle("Data Complete") # self.show() def onChanged(self, s): """改变n的值""" i = int(s) self.n = i def showMessage(self): """弹框确认是否补充n天前的数据""" reply = QMessageBox.question( self, 'Message', 'your n is {}, sure to complete?'.format(self.n), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: dailyUpdate(self.n) def updateLeft(self, date): self.text += date.toString(Qt.ISODate) + '\n' self.logMoniter.setText(self.text) def updateRight(self, date): pass