def test_basic_table_view(qtbot: QtBot): view = BasicTableView() qtbot.addWidget(view) x = np.random.random((5, 5)) model = NumpyArrayTableModel(x) view.setModel(model) view.setCurrentIndex(view.indexAt(QtCore.QPoint(0, 0))) assert view.currentIndex().row() == 0 view._advance() assert view.currentIndex().row() == 1 view.selectionModel().select( view.indexAt(QtCore.QPoint(0, 0)), QtCore.QItemSelectionModel.Select ) view._copy() mime_data = QtWidgets.QApplication.clipboard().mimeData() assert mime_data.text() == str(x[0, 0]) + "\n" + str(x[1, 0]) view._cut() # Same as _copy, _delete view._delete() assert not np.isnan(x[0, 0]) # Can't delete out of a numpy array QtWidgets.QApplication.clipboard().setText("2.0") view._paste() assert x[0, 0] == 2.0 view.contextMenuEvent( QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0)) )
def test_laser_widget_actions(qtbot: QtBot): viewspace = LaserViewSpace() qtbot.addWidget(viewspace) viewspace.show() view = viewspace.activeView() view.addLaser( Laser(rand_data(["a", "b"]), info={"File Path": "/home/pewpew/real.npz"})) widget = view.activeWidget() dlg = widget.actionCalibration() dlg.close() dlg = widget.actionConfig() dlg.close() widget.actionDuplicate() widget.actionCopyImage() dlg = widget.actionExport() dlg.close() dlg = widget.actionSave() dlg.close() dlg = widget.actionStatistics() dlg.close() dlg = widget.actionSelectDialog() dlg.close() dlg = widget.actionColocal() dlg.close() widget.contextMenuEvent( QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0))) # Test contextmenu widget.graphics.mask = np.ones((10, 10), dtype=bool) widget.contextMenuEvent( QtGui.QContextMenuEvent( QtGui.QContextMenuEvent.Mouse, widget.graphics.mapFromScene(QtCore.QPointF(0, 0)), )) widget.actionCopySelectionText() widget.actionCropSelection() dlg = widget.actionStatisticsSelection() dlg.close() dlg = widget.actionColocalSelection() dlg.close()
def test_laser_widget_combo(qtbot: QtBot): box = LaserComboBox() qtbot.addWidget(box) box.addItems("abcde") dlg = box.actionNameEditDialog() dlg.close() box.contextMenuEvent( QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0)))
def test_basic_table(qtbot: QtBot): table = BasicTable() qtbot.addWidget(table) table.setRowCount(2) table.setColumnCount(2) table.setItem(0, 0, QtWidgets.QTableWidgetItem("0")) table.setItem(0, 1, QtWidgets.QTableWidgetItem("0")) table.setItem(1, 0, QtWidgets.QTableWidgetItem("0")) table.setItem(1, 1, QtWidgets.QTableWidgetItem("d")) table.setColumnText(0, ["a", "c"]) table.setRowText(0, ["a", "b"]) assert table.columnText(0) == ["a", "c"] assert table.rowText(0) == ["a", "b"] table.setCurrentCell(0, 0) assert table.currentRow() == 0 table._advance() assert table.currentRow() == 1 table.clearSelection() table.setRangeSelected(QtWidgets.QTableWidgetSelectionRange(0, 0, 0, 1), True) table._copy() mime_data = QtWidgets.QApplication.clipboard().mimeData() assert mime_data.text() == "a\tb" table.clearSelection() table.setRangeSelected(QtWidgets.QTableWidgetSelectionRange(1, 0, 1, 1), True) table._cut() # Same as _copy, _delete mime_data = QtWidgets.QApplication.clipboard().mimeData() assert mime_data.text() == "c\td" assert table.item(1, 0).text() == "" assert table.item(1, 1).text() == "" table.setRangeSelected(QtWidgets.QTableWidgetSelectionRange(0, 0, 1, 1), True) table._delete() assert table.item(0, 0).text() == "" assert table.item(0, 1).text() == "" QtWidgets.QApplication.clipboard().setText("1\t2\n3\t4") table._paste() assert table.item(0, 0).text() == "1" assert table.item(0, 1).text() == "2" assert table.item(1, 0).text() == "3" assert table.item(1, 1).text() == "4" table.contextMenuEvent( QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0)) )
def test_base_chart(qtbot: QtBot): chart = BaseChart(QtCharts.QChart(), light_theme) qtbot.addWidget(chart) axis = QtCharts.QValueAxis() chart.addAxis(axis, QtCore.Qt.AlignBottom) assert axis.gridLineColor() == chart.theme["grid"] assert axis.minorGridLineColor() == chart.theme["grid"] assert axis.labelsColor() == chart.theme["text"] assert axis.linePen().color() == chart.theme["axis"] assert axis.titleBrush().color() == chart.theme["title"] chart.contextMenuEvent( QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0))) chart.copyToClipboard()
def test_laser_view(qtbot: QtBot): viewspace = LaserViewSpace() qtbot.addWidget(viewspace) viewspace.show() view = viewspace.activeView() laser = view.addLaser(Laser(rand_data(["A1", "B2", "C3"]))) qtbot.waitExposed(laser) view.tabs.setTabText(0, "newname") assert view.stack.widget(0).laserName() == "newname" view.contextMenuEvent( QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0))) # Drop event drag_mime = QtCore.QMimeData() path = Path(__file__).parent.joinpath("data", "io", "npz", "test.npz") drag_mime.setUrls([QtCore.QUrl.fromLocalFile(str(path.resolve()))]) drag_event = QtGui.QDragEnterEvent( QtCore.QPoint(0, 0), QtCore.Qt.CopyAction, drag_mime, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier, ) view.dragEnterEvent(drag_event) assert drag_event.isAccepted() drop_event = QtGui.QDropEvent( QtCore.QPoint(0, 0), QtCore.Qt.CopyAction, drag_mime, QtCore.Qt.LeftButton, QtCore.Qt.NoModifier, ) with qtbot.waitSignal(view.numTabsChanged): view.dropEvent(drop_event) assert drop_event.isAccepted() assert len(view.widgets()) == 2 dlg = view.actionOpen() dlg.show() dlg.close()
def test_MayaButtonWidget(self): try: import bookmarks.maya.widget as mayawidget import bookmarks.common as common import bookmarks.standalone as standalone import bookmarks.maya as maya except ImportError as e: raise w = mayawidget.MayaButtonWidget() w.show() try: from PySide2 import QtCore, QtGui except ImportError as e: raise e = QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, w.geometry().center()) w.contextMenuEvent(e) w.clicked.emit()
def test_stats_dialog(qtbot: QtBot): x = np.array(np.random.random([10, 10]), dtype=[("a", float)]) x[0, :] = np.nan m = np.full(x.shape, True, dtype=bool) dialog = dialogs.StatsDialog(x, m, {"a": "u"}, "a", (1.0, 1.0)) qtbot.addWidget(dialog) dialog.open() assert dialog.label_area.text().endswith("90 μm²") dialog.pixel_size = (1e3, 1e3) dialog.updateStats() assert dialog.label_area.text().endswith("90 mm²") dialog.pixel_size = (1e5, 1e5) dialog.updateStats() assert dialog.label_area.text().endswith("9000 cm²") dialog.contextMenuEvent( QtGui.QContextMenuEvent(QtGui.QContextMenuEvent.Mouse, QtCore.QPoint(0, 0))) dialog.copyToClipboard()