Exemplo n.º 1
0
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.setLayout(QVBoxLayout())

        tv1 = QTableView(self)
        tv2 = QTableView(self)
        model = QStandardItemModel(8, 4, self)
        proxy = SortFilterProxyModel(self)
        proxy.setSourceModel(model)
        tv1.setModel(model)
        tv2.setModel(proxy)
        self.layout().addWidget(tv1)
        self.layout().addWidget(tv2)

        for i in range(model.rowCount()):
            for j in range(model.columnCount()):
                item = QStandardItem()
                item.setData(random_word(), Qt.DisplayRole)
                model.setItem(i, j, item)

        flayout = QFormLayout()
        self.layout().addLayout(flayout)
        for i in range(model.columnCount()):
            le = QLineEdit(self)
            flayout.addRow("column: {}".format(i), le)
            le.textChanged.connect(lambda text, col=i: proxy.setFilterByColumn(
                QRegExp(text, Qt.CaseSensitive, QRegExp.FixedString), col))
Exemplo n.º 2
0
    def _init_widget_and_widget(self):
        '''初始化窗口布局

        @参数说明: 
            无

        @返回值: 
            无

        @注意: 
            无
        '''
        self.original_table_view = QTableView()
        self.result_table_view = QTableView()

        self.original_graphics = modify_graphics.ModifyQGraphicsView()
        self.result_graphics = modify_graphics.ModifyQGraphicsView()

        self.ui.horizontal_layout = QHBoxLayout(self.ui.show_result)
        self.ui.vertical_layout_1 = QVBoxLayout()
        self.ui.vertical_layout_2 = QVBoxLayout()

        self.ui.vertical_layout_1.addWidget(self.original_graphics)
        self.ui.vertical_layout_1.addWidget(self.original_table_view)
        self.ui.vertical_layout_1.setStretch(0, 2)
        self.ui.vertical_layout_1.setStretch(1, 1)

        self.ui.vertical_layout_2.addWidget(self.result_graphics)
        self.ui.vertical_layout_2.addWidget(self.result_table_view)
        self.ui.vertical_layout_2.setStretch(0, 2)
        self.ui.vertical_layout_2.setStretch(1, 1)

        self.ui.horizontal_layout.addLayout(self.ui.vertical_layout_1)
        self.ui.horizontal_layout.addLayout(self.ui.vertical_layout_2)
Exemplo n.º 3
0
 def showdf(self, df):
     model = PdQtClass.pandasModel(df)
     view = QTableView()
     view.setModel(model)
     view.resize(800, 600)
     self.w = QTableView()
     self.w.setModel(model)
     self.w.resize(480, 320)
     self.w.show()
Exemplo n.º 4
0
    def testReferenceCounting(self):
        '''Tests reference count of model object referred by view objects.'''
        model1 = TestModel()
        refcount1 = getrefcount(model1)
        view1 = QTableView()
        view1.setModel(model1)
        self.assertEqual(getrefcount(view1.model()), refcount1 + 1)

        view2 = QTableView()
        view2.setModel(model1)
        self.assertEqual(getrefcount(view2.model()), refcount1 + 2)

        model2 = TestModel()
        view2.setModel(model2)
        self.assertEqual(getrefcount(view1.model()), refcount1 + 1)
    def __init__(self, type: np.dtype = np.byte, parent=None):
        super().__init__(parent)
        self.model = ArrayDatasetTableModel(dtype=type, parent=self)
        self.view = QTableView()
        self.view.setModel(self.model)
        self.view.setSelectionMode(QAbstractItemView.SingleSelection)
        self.view.setItemDelegate(ValueDelegate(type, parent))

        self.setLayout(QGridLayout())
        self.toolbox = QToolBar()
        self.add_row_button = QAction(text="➕ Add Row")
        self.add_row_button.triggered.connect(self.model.add_row)
        self.remove_row_button = QAction(text="➖ Remove Row")
        self.remove_row_button.triggered.connect(
            partial(self.model.delete_index, True))
        self.add_column_button = QAction(text="➕ Add Column")
        self.add_column_button.triggered.connect(self.model.add_column)
        self.remove_column_button = QAction(text="➖ Remove Column")
        self.remove_column_button.triggered.connect(
            partial(self.model.delete_index, False))

        self.toolbox.addAction(self.add_row_button)
        self.toolbox.addAction(self.remove_row_button)
        self.toolbox.addAction(self.add_column_button)
        self.toolbox.addAction(self.remove_column_button)

        self.layout().addWidget(self.toolbox)
        self.layout().addWidget(self.view)
Exemplo n.º 6
0
    def __init__(self):
        super().__init__()

        self.table = QTableView()

        self.model = QSqlTableModel(db=db)

        self.table.setModel(self.model)

        # tag::titles[]
        self.model.setTable("Track")
        column_titles = {
            "Name": "Name",
            "AlbumId": "Album (ID)",
            "MediaTypeId": "Media Type (ID)",
            "GenreId": "Genre (ID)",
            "Composer": "Composer",
        }
        for n, t in column_titles.items():
            idx = self.model.fieldIndex(n)
            self.model.setHeaderData(idx, Qt.Horizontal, t)

        self.model.select()
        # end::titles[]

        self.model.select()

        self.setMinimumSize(QSize(1024, 600))
        self.setCentralWidget(self.table)
Exemplo n.º 7
0
    def __init__(self, db=0, mode=0):
        super().__init__()

        layout = QGridLayout()
        #self.central_widget.setLayout(layout)
        self.resize(800, self.height())
        self.lb_find = QInvisibleButton('Поиск')
        self.lb_find.setFont(mainfont)
        self.te_find = QLineEdit()
        self.te_find.setFont(mainfont)
        self.pid = 0

        layout.addWidget(self.te_find, 0, 0, 1, 1)
        layout.addWidget(self.lb_find, 0, 0, 1, 1)
        #if mode:
        #   te.setReadOnly(False)
        self.lb_find.clicked.connect(self.button_pressed)
        self.te_find.returnPressed.connect(self.line_edit_return_pressed)

        self.database = db

        self.table = QTableView()  # Создаём таблицу
        self.table.doubleClicked.connect(self.viewPerson)
        #self.table = table

        self.model = TableModel(self.database.get_peoples())
        self.table.setModel(self.model)
        self.table.resizeRowsToContents()
        self.table.setSelectionBehavior(QAbstractItemView.SelectRows)
        #self.table.setSelectionMode(QAbstractItemView.SingleSelection);
        self.model.dataChanged.connect(self.table.update)

        layout.addWidget(self.table)
        self.setLayout(layout)
Exemplo n.º 8
0
    def __init__(self):
        super(MainWindow, self).__init__()
        self.resize(1024, 600)
        wood_model = WoodModel(list(db.get_all_wood_records()))
        main_layout = QVBoxLayout()
        table_view = QTableView(self)
        table_view.setModel(wood_model)
        main_layout.addWidget(table_view)
        text_edit = QTextEdit(self)
        main_layout.addWidget(text_edit)
        message_label = QLabel("", self)
        main_layout.addWidget(message_label)
        add_button = QPushButton("Add", self)
        main_layout.addWidget(add_button)
        self.setLayout(main_layout)

        def on_add(value):
            records_to_add = text_edit.toPlainText().split("\n")
            for record_to_add in records_to_add:
                columns = record_to_add.split("\t")
                try:
                    wood = db.Wood.from_text_columns(columns)
                    db.add_wood_record(wood)
                    wood_model.add_wood(wood)
                except db.DwellingException as e:
                    print(e.message)
                    message_label.setText(e.message)
            text_edit.clear()

        add_button.clicked.connect(on_add)
Exemplo n.º 9
0
    def __init__(self, *args):
        super().__init__()

        self.setFixedSize(930, 631)
        self.setLocale(QLocale(QLocale.English, QLocale.UnitedStates))
        self.setWindowTitle(
            QCoreApplication.translate("MainWindow", "PyInspect"))

        self.central_widget = QWidget(self)

        self.comboBox = QComboBox(self.central_widget)
        self.comboBox.setGeometry(QRect(10, 10, 451, 22))
        self.comboBox.setMouseTracking(False)
        self.comboBox.setMaxVisibleItems(5)
        self.comboBox.setObjectName("comboBox")

        for _backend in backend.registry.backends.keys():
            self.comboBox.addItem(_backend)

        self.tree_view = QTreeView(self.central_widget)
        self.tree_view.setGeometry(QRect(10, 40, 451, 581))
        self.tree_view.setColumnWidth(0, 150)

        self.comboBox.setCurrentText('uia')
        self.__show_tree()

        self.table_view = QTableView(self.central_widget)
        self.table_view.setGeometry(QRect(470, 40, 451, 581))

        self.comboBox.activated[str].connect(self.__show_tree)
        self.tree_view.clicked.connect(self.__show_property)
Exemplo n.º 10
0
    def __init__(self):
        super().__init__()

        self.view = QTableView()
        self.view.horizontalHeader().hide()
        self.view.verticalHeader().hide()
        self.view.setGridStyle(Qt.NoPen)

        delegate = PreviewDelegate()
        self.view.setItemDelegate(delegate)
        self.model = PreviewModel()
        self.view.setModel(self.model)

        self.setCentralWidget(self.view)

        # Add a bunch of images.
        image_files = glob.glob("*.jpg")
        for n, fn in enumerate(image_files):
            image = QImage(fn)
            item = preview(n, fn, image)
            self.model.previews.append(item)
        self.model.layoutChanged.emit()

        self.view.resizeRowsToContents()
        self.view.resizeColumnsToContents()
Exemplo n.º 11
0
    def setupTabs(self):
        """ Setup the various tabs in the AddressWidget. """
        groups = ["ABC", "DEF", "GHI", "JKL", "MNO", "PQR", "STU", "VW", "XYZ"]

        for group in groups:
            proxyModel = QSortFilterProxyModel(self)
            proxyModel.setSourceModel(self.tableModel)
            proxyModel.setDynamicSortFilter(True)

            tableView = QTableView()
            tableView.setModel(proxyModel)
            tableView.setSortingEnabled(True)
            tableView.setSelectionBehavior(QAbstractItemView.SelectRows)
            tableView.horizontalHeader().setStretchLastSection(True)
            tableView.verticalHeader().hide()
            tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
            tableView.setSelectionMode(QAbstractItemView.SingleSelection)

            # This here be the magic: we use the group name (e.g. "ABC") to
            # build the regex for the QSortFilterProxyModel for the group's
            # tab. The regex will end up looking like "^[ABC].*", only
            # allowing this tab to display items where the name starts with
            # "A", "B", or "C". Notice that we set it to be case-insensitive.
            reFilter = "^[%s].*" % group

            proxyModel.setFilterRegExp(QRegExp(reFilter, Qt.CaseInsensitive))
            proxyModel.setFilterKeyColumn(0)  # Filter on the "name" column
            proxyModel.sort(0, Qt.AscendingOrder)

            # This prevents an application crash (see: http://www.qtcentre.org/threads/58874-QListView-SelectionModel-selectionChanged-Crash)
            viewselectionmodel = tableView.selectionModel()
            tableView.selectionModel().selectionChanged.connect(
                self.selectionChanged)

            self.addTab(tableView, group)
Exemplo n.º 12
0
    def __init__(self):
        QWidget.__init__(self)

        self.model = CustomTableModel()

        self.table_view = QTableView()
        self.table_view.setModel(self.model)
        self.table_view.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)
        self.table_view.verticalHeader().setSectionResizeMode(
            QHeaderView.Stretch)

        self.chart = QtCharts.QChart()
        self.chart.setAnimationOptions(QtCharts.QChart.AllAnimations)

        self.series = QtCharts.QLineSeries()
        self.series.setName("Line 1")
        self.mapper = QtCharts.QVXYModelMapper(self)
        self.mapper.setXColumn(0)
        self.mapper.setYColumn(1)
        self.mapper.setSeries(self.series)
        self.mapper.setModel(self.model)
        self.chart.addSeries(self.series)

        # for storing color hex from the series
        seriesColorHex = "#000000"

        # get the color of the series and use it for showing the mapped area
        seriesColorHex = "{}".format(self.series.pen().color().name())
        self.model.add_mapping(seriesColorHex,
                               QRect(0, 0, 2, self.model.rowCount()))

        # series 2
        self.series = QtCharts.QLineSeries()
        self.series.setName("Line 2")

        self.mapper = QtCharts.QVXYModelMapper(self)
        self.mapper.setXColumn(2)
        self.mapper.setYColumn(3)
        self.mapper.setSeries(self.series)
        self.mapper.setModel(self.model)
        self.chart.addSeries(self.series)

        # get the color of the series and use it for showing the mapped area
        seriesColorHex = "{}".format(self.series.pen().color().name())
        self.model.add_mapping(seriesColorHex,
                               QRect(2, 0, 2, self.model.rowCount()))

        self.chart.createDefaultAxes()
        self.chart_view = QtCharts.QChartView(self.chart)
        self.chart_view.setRenderHint(QPainter.Antialiasing)
        self.chart_view.setMinimumSize(640, 480)

        # create main layout
        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.table_view, 1, 0)
        self.main_layout.addWidget(self.chart_view, 1, 1)
        self.main_layout.setColumnStretch(1, 1)
        self.main_layout.setColumnStretch(0, 0)
        self.setLayout(self.main_layout)
Exemplo n.º 13
0
    def __init__(self, conn=None, parent=None):
        super().__init__(parent)
        self.conn = conn

        self.view = QTableView()
        self.model = MetricModel()
        self.buttons = QDialogButtonBox(QDialogButtonBox.Ok)

        self.view.setModel(self.model)
        self.view.setAlternatingRowColors(True)
        self.view.horizontalHeader().hide()
        self.view.verticalHeader().hide()
        self.view.setSelectionMode(QAbstractItemView.SingleSelection)
        self.view.setSelectionBehavior(QAbstractItemView.SelectRows)

        self.buttons.accepted.connect(self.accept)

        self.setWindowTitle(self.tr("Project metrics"))

        v_layout = QVBoxLayout()
        v_layout.addWidget(self.view)
        v_layout.addWidget(self.buttons)
        self.setLayout(v_layout)

        # Async stuff
        self.metrics_runnable = None
        self.populate()
Exemplo n.º 14
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self._workbench: WorkbenchModel = None

        sideWidget = QWidget(self)
        sideLayout = QVBoxLayout()
        self.CBL = QComboBox(sideWidget)
        self.CBR = QComboBox(sideWidget)
        self.columnsL = SearchableAttributeTableWidget(sideWidget, True, showTypes=True)
        self.columnsR = SearchableAttributeTableWidget(sideWidget, True, showTypes=True)
        button = QPushButton('Compute diff', self)
        sideLayout.addWidget(self.CBL)
        sideLayout.addWidget(self.columnsL)
        sideLayout.addWidget(self.CBR)
        sideLayout.addWidget(self.columnsR)
        sideLayout.addWidget(button)
        sideWidget.setLayout(sideLayout)

        self.tableWidget = QTableView(self)

        splitter = QSplitter(self)
        splitter.addWidget(sideWidget)
        splitter.addWidget(self.tableWidget)

        layout = QHBoxLayout(self)
        layout.addWidget(splitter)

        self.CBL.currentTextChanged.connect(self.setAttributeModelL)
        self.CBR.currentTextChanged.connect(self.setAttributeModelR)
        button.clicked.connect(self.computeDiff)
Exemplo n.º 15
0
    def view_fit_grains_results(self):
        for result in self.fit_grains_results:
            print(result)

        # Build grains table
        num_grains = len(self.fit_grains_results)
        shape = (num_grains, 21)
        grains_table = np.empty(shape)
        gw = instrument.GrainDataWriter(array=grains_table)
        for result in self.fit_grains_results:
            gw.dump_grain(*result)
        gw.close()

        # Display grains table in popup dialog
        dialog = QDialog(self.parent)
        dialog.setWindowTitle('Fit Grains Results')

        model = FitGrainsResultsModel(grains_table, dialog)
        view = QTableView(dialog)
        view.setModel(model)
        view.verticalHeader().hide()
        view.resizeColumnToContents(0)

        layout = QVBoxLayout(dialog)
        layout.addWidget(view)
        dialog.setLayout(layout)
        dialog.resize(960, 320)
        dialog.exec_()
Exemplo n.º 16
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setWindowTitle('Desktop application')

        self._label = QLabel('Collection', self)

        self._open_button = QPushButton('Open')
        self._open_button.setToolTip('Choose the collection database')

        self._add_button = QPushButton('Add')
        self._add_button.setToolTip('Add a new entry into the collection')

        self._model = None
        self._view = QTableView(self)

        horizontal_layout = QHBoxLayout()
        horizontal_layout.addWidget(self._label)
        horizontal_layout.addWidget(self._open_button)
        horizontal_layout.addWidget(self._add_button)

        layout = QVBoxLayout()
        layout.addLayout(horizontal_layout)
        layout.addWidget(self._view)

        self.setLayout(layout)

        self._open_button.clicked.connect(self.__open_collection)
        self._add_button.clicked.connect(self.__add_new_entry)
Exemplo n.º 17
0
    def __init__(self, data):
        QWidget.__init__(self)

        self.model = CustomTableModel(data)

        self.table_view = QTableView()
        self.table_view.setModel(self.model)
        self.table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.table_view.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
        self.table_view.setMinimumSize(400, 600)

        self.chart = QtCharts.QChart()
        self.chart.setAnimationOptions(QtCharts.QChart.AllAnimations)

        self.init_data()

        self.chart.createDefaultAxes()
        self.chart_view = QtCharts.QChartView(self.chart)
        self.chart_view.setRenderHint(QPainter.Antialiasing)
        self.chart_view.setMinimumSize(800, 600)

        # create main layout
        self.main_layout = QGridLayout()
        self.main_layout.addWidget(self.table_view, 1, 0)
        self.main_layout.addWidget(self.chart_view, 1, 1)
        self.main_layout.setColumnStretch(1, 2)
        self.main_layout.setColumnStretch(0, 1)
        self.setLayout(self.main_layout)
Exemplo n.º 18
0
    def __init__(self, parent=None):
        super().__init__()
        self.setWindowTitle("Родословная")
        self.resize(800, self.height())
        self.distance = 1000

        self.central_widget = QWidget()
        self.setCentralWidget(self.central_widget)

        layout = QGridLayout()
        self.central_widget.setLayout(layout)

        self.lb_find = QInvisibleButton('Поиск')
        self.lb_find.setFont(mainfont)
        self.te_find = QLineEdit()
        self.te_find.setFont(mainfont)

        layout.addWidget(self.te_find, 0, 0, 1, 1)
        layout.addWidget(self.lb_find, 0, 0, 1, 1)
        #if mode:
        #   te.setReadOnly(False)
        self.lb_find.clicked.connect(self.button_pressed)
        self.te_find.returnPressed.connect(self.line_edit_return_pressed)

        self.table = QTableView()  # Создаём таблицу
        self.table.doubleClicked.connect(self.viewPerson)
        layout.addWidget(self.table)
        self.table.setFocus()
        timer = QTimer(self)
        timer.singleShot(0, self.async_init)
Exemplo n.º 19
0
 def __init__(self, model):
     QDialog.__init__(self)
     self.resize(QSize(1081, 750))
     self.model = model
     self.tableViewPodgladDanych = QTableView(self)
     self.tableViewPodgladDanych.resize(QSize(1070, 740))
     self.tableViewPodgladDanych.setModel(model)
Exemplo n.º 20
0
    def __init__(self):
        """
        Widget containing the table summary of all attributes
        """
        QWidget.__init__(self)

        # Data
        self.attributes = {}  # Attributes names to ids -> {attr_name: attr_id, ...}
        self.attr_idx = {}  # Attributes ids to indexes -> {attr_id: attr_idx, ...}
        self.students = {}  # Students names to ids -> {std_name: std_id, ...}
        self.std_idx = {}  # Students ids to indexes -> {std_id: std_idx, ...}
        self.data = {}  # Attributes and students ids to cell data -> {(attr_id, std_id): cell_data, ...}

        self.dm: AttributesTableModel = None

        # Widget
        self.table_attributes = QTableView()
        self.table_attributes.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.table_attributes.setSelectionMode(QAbstractItemView.SingleSelection)
        self.table_attributes.verticalHeader().setSectionResizeMode(QHeaderView.Fixed)
        self.table_attributes.verticalHeader().setFixedWidth(150)

        # Signals
        self.table_attributes.clicked.connect(self.on_cell_clicked)
        self.sig_cell_clicked: Signal = None

        # Layout
        self.__set_layout()

        self.set_data([], [], {})
Exemplo n.º 21
0
    def init_ui(self, data):
        self.model = Dicom_TagsModel(data)
        self.view = QTableView()
        self.view.setModel(self.model)

        layout = QHBoxLayout(self)
        layout.addWidget(self.view)
Exemplo n.º 22
0
    def __init__(self, parent=None):
        super(VernierUpdate, self).__init__(parent)
        wl_coarse = np.linspace(1480, 1600, 60001)

        self.fig_coarse = FigureWithToolbar(width=7, height=4)
        self.fig_coarse.set_limits(ylim=(-30, 5), auto_x=True, auto_y=False)
        self.fig_coarse.set_labels('Wavelength [nm]', 'Transmission [dB]')
        self.fig_coarse.plot_line(wl_coarse,
                                  np.zeros_like(wl_coarse),
                                  label='Vernier')

        wl_fine = np.linspace(1540, 1541, 201)
        self.fig_fine = FigureWithToolbar(width=7, height=4)
        self.fig_fine.set_limits(ylim=(-1, 0), auto_x=True, auto_y=False)
        self.fig_fine.set_labels('Wavelength [nm]', 'Transmission [dB]')
        self.fig_fine.plot_line(wl_fine, np.zeros_like(wl_fine), label='MRR1')
        self.fig_fine.plot_line(wl_fine, np.zeros_like(wl_fine), label='MRR2')
        self.fig_fine.plot_line(wl_fine,
                                np.zeros_like(wl_fine),
                                label='Vernier')

        self.peaks_model = PandasModel(
            pd.DataFrame({
                'Peak wl [nm]': np.full((5, ), fill_value=np.nan),
                'Peak lvl [dB]': np.full((5, ), fill_value=np.nan)
            }))
        self.peaks_table = QTableView()
        self.peaks_table.setModel(self.peaks_model)
        self.peaks_table.setMinimumWidth(160)

        layout = QHBoxLayout()
        layout.addWidget(self.fig_coarse)
        layout.addWidget(self.fig_fine)
        layout.addWidget(self.peaks_table)
        self.setLayout(layout)
Exemplo n.º 23
0
 def testSetModel(self):
     model = VirtualList()
     model._getItemCalled = False
     table = QTableView()
     table.setModel(model)
     table.show()
     self.assertFalse(model._getItemCalled)
Exemplo n.º 24
0
    def __init__(self):
        super(Window, self).__init__()

        self.table = QTableView()
        self.sti = QStandardItemModel()
        self.sti.setColumnCount(3)
        self.table.setModel(self.sti)

        self.sti.setRowCount(8)

        #piersza możliwośc przez QStandardItem
        # item1 = QStandardItem('Red')
        # item1.setBackground(QBrush(Qt.red))
        # self.sti.setHorizontalHeaderItem(1, item1)

        #Druga możliwosć przez odwołanie modelu:
        self.table.model().setHeaderData(0, Qt.Horizontal,
                                         QBrush(QColor(121, 166, 210)),
                                         Qt.BackgroundRole)
        self.table.model().setHeaderData(0, Qt.Horizontal, "One",
                                         Qt.DisplayRole)

        self.mlayout = QHBoxLayout()
        self.mlayout.addWidget(self.table)

        self.setLayout(self.mlayout)
Exemplo n.º 25
0
    def __init__(self, data):
        QWidget.__init__(self)

        #Getting the Model
        self.model = CustomTableModel(data)

        #Creating a QTableView
        self.table_view = QTableView()
        self.table_view.setModel(self.model)

        #QTableView Headers
        self.horizontal_header = self.table_view.horizontalHeader()
        self.vertical_header = self.table_view.verticalHeader()
        self.horizontal_header.setSectionResizeMode(
            QHeaderView.ResizeToContents)
        self.vertical_header.setSectionResizeMode(QHeaderView.ResizeToContents)
        self.horizontal_header.setStretchLastSection(True)

        #QWidget Layout
        self.main_layout = QHBoxLayout()
        size = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)

        #Left Layout
        size.setHorizontalStretch(1)
        self.table_view.setSizePolicy(size)
        self.main_layout.addWidget(self.table_view)

        # Set layout to QWidget
        self.setLayout(self.main_layout)
Exemplo n.º 26
0
    def __init__(self):
        QWidget.__init__(self)

        # Creating a QTableView
        self.table_view = QTableView()

        # QWidget Layout
        self.main_layout = QHBoxLayout()
        self.size = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)

        # generate the plot
        self.fig, self.ax = plt.subplots()
        self.fig.tight_layout = True
        self.fig.subplots_adjust(left=0.05, right=0.95, top=0.95, bottom=0.05)
        self.ax.margins(0, 0)
        self.canvas = FigureCanvas(self.fig)

        ## Left layout
        self.size.setHorizontalStretch(1)
        self.table_view.setSizePolicy(self.size)
        self.main_layout.addWidget(self.table_view)

        ## Right Layout
        self.size.setHorizontalStretch(4)
        self.canvas.setSizePolicy(self.size)
        self.main_layout.addWidget(self.canvas)

        # Creating QChartView
        self.chart_view = QtCharts.QChartView()
        self.chart_view.setRenderHint(QPainter.Antialiasing)

        # Set the layout to the QWidget
        self.setLayout(self.main_layout)
Exemplo n.º 27
0
 def __init__(self, parent, option, index):
     """Initialize class."""
     super().__init__(parent)
     layout = QVBoxLayout(self)
     layout.setContentsMargins(0, 0, 0, 0)
     layout.setSpacing(0)
     self.model = MinimalTableModel(self)
     self.model.flags = self.model_flags
     self.view = QTableView(self)
     self.view.setModel(self.model)
     self.view.verticalHeader().hide()
     self.view.horizontalHeader().hide()
     self.view.setShowGrid(False)
     check_box_delegate = CheckBoxDelegate(self)
     self.view.setItemDelegateForColumn(0, check_box_delegate)
     check_box_delegate.data_committed.connect(
         self._handle_check_box_data_committed)
     self.button = QPushButton("Ok", self)
     self.button.setFlat(True)
     self.view.verticalHeader().setDefaultSectionSize(option.rect.height())
     self.button.setFixedHeight(option.rect.height())
     layout.addWidget(self.view)
     layout.addWidget(self.button)
     self.button.clicked.connect(self._handle_ok_button_clicked)
     self.setWindowFlags(Qt.FramelessWindowHint | Qt.Popup)
     x_offset = parent.parent().columnViewportPosition(index.column())
     y_offset = parent.parent().rowViewportPosition(index.row())
     self.position = parent.mapToGlobal(QPoint(0, 0)) + QPoint(
         x_offset, y_offset)
Exemplo n.º 28
0
def get_view_for_submodel(submodel):
    main_widget = QWidget()

    hbox_layout = QHBoxLayout(main_widget)
    vbox_layout = QVBoxLayout()

    table_view = QTableView()
    table_view.setSelectionBehavior(QAbstractItemView.SelectRows)
    table_view.setSelectionMode(QAbstractItemView.SingleSelection)
    table_view.setModel(submodel)

    add_button = QPushButton("+")
    add_button.clicked.connect(lambda: add_item_to_model(submodel))

    remove_button = QPushButton("-")
    remove_button.clicked.connect(
        lambda: remove_item_from_model(submodel, table_view))

    vbox_layout.addWidget(add_button)
    vbox_layout.addWidget(remove_button)
    vbox_layout.addItem(
        QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding))

    hbox_layout.addWidget(table_view)
    hbox_layout.addLayout(vbox_layout)

    return main_widget
Exemplo n.º 29
0
    def __init__(self, parent, name, data):
        if not type(data) == binaryninja.binaryview.BinaryView:
            raise Exception('expected widget data to be a BinaryView')

        self.bv = data

        QWidget.__init__(self, parent)
        DockContextHandler.__init__(self, self, name)
        self.actionHandler = UIActionHandler()
        self.actionHandler.setupActionHandler(self)

        self.table = QTableView(self)
        self.model = DebugModulesListModel(self.table, data)
        self.table.setModel(self.model)

        self.item_delegate = DebugModulesItemDelegate(self)
        self.table.setItemDelegate(self.item_delegate)

        # self.table.setSortingEnabled(True)
        self.table.setSelectionBehavior(
            QAbstractItemView.SelectionBehavior.SelectRows)
        self.table.setSelectionMode(QAbstractItemView.ExtendedSelection)

        self.table.verticalHeader().setSectionResizeMode(
            QHeaderView.ResizeToContents)
        self.table.verticalHeader().setVisible(False)

        self.table.setHorizontalScrollMode(QAbstractItemView.ScrollPerPixel)
        self.table.setVerticalScrollMode(QAbstractItemView.ScrollPerPixel)

        self.table.resizeColumnsToContents()
        self.table.resizeRowsToContents()

        for i in range(len(self.model.columns)):
            self.table.setColumnWidth(
                i,
                self.item_delegate.sizeHint(
                    self.table.viewOptions(),
                    self.model.index(-1, i, QModelIndex())).width())

        update_layout = QHBoxLayout()
        update_layout.setContentsMargins(0, 0, 0, 0)

        update_label = QLabel("Data is Stale")
        update_button = QPushButton("Refresh")
        update_button.clicked.connect(lambda: self.refresh())

        update_layout.addWidget(update_label)
        update_layout.addStretch(1)
        update_layout.addWidget(update_button)

        self.update_box = QWidget()
        self.update_box.setLayout(update_layout)

        self.layout = QVBoxLayout()
        self.layout.setContentsMargins(0, 0, 0, 0)
        self.layout.setSpacing(0)
        self.layout.addWidget(self.table)
        self.setLayout(self.layout)
Exemplo n.º 30
0
 def _create_table_view(self, df):
     if df is None:
         df = pd.DataFrame()
     model = PandasModel(df)
     table_view = QTableView()
     table_view.setModel(model)
     table_view.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
     return table_view