Beispiel #1
0
class MainWindow(QWidget):
    '''
    Объявление UI для программы
    '''
    def __init__(self, parent):
        super(MainWindow, self).__init__()
        self._width = 360
        self._height = 320
        self.setMinimumSize(self._width, self._height)
        self.setMaximumSize(self._width, self._height)
        #self.resize(self._width, self._height)
        self.setWindowTitle('0-бед or 0-bet')
        self.VBox = QVBoxLayout(self)
        self.VBox.setContentsMargins(5, 5, 5, 5)
        self.restText = QLabel(self)
        self.restText.setText("Список заведений: ")
        self.restTable = QTableView(self)
        self.sep1 = QFrame(self)
        self.sep1.setFrameShape(QFrame.HLine)
        self.sep1.setFrameShadow(QFrame.Sunken)
        self.restUnitName = QLineEdit(self)
        self.restAddButt = QPushButton(self)
        self.restAddButt.setText('Добавить заведение')
        self.restRmvButt = QPushButton(self)
        self.restRmvButt.setText('Удалить заведение')
        self.sep2 = QFrame(self)
        self.sep2.setFrameShape(QFrame.HLine)
        self.sep2.setFrameShadow(QFrame.Sunken)
        self.restLotteryButt = QPushButton(self)
        self.restLotteryButt.setText('Лотерея')

        self.VBox.addWidget(self.restText)
        self.VBox.addWidget(self.restTable)
        self.VBox.addWidget(self.sep1)
        self.VBox.addWidget(self.restUnitName)
        self.VBox.addWidget(self.restAddButt)
        self.VBox.addWidget(self.restRmvButt)
        self.VBox.addWidget(self.sep2)
        self.VBox.addWidget(self.restLotteryButt)
        self.setLayout(self.VBox)

        self.restAddButt.clicked.connect(self.addRestItem)
        self.restLotteryButt.clicked.connect(self.startLottery)
        self.restRmvButt.clicked.connect(self.removeRestItem)
        self.restTable.clicked.connect(self.selectRest)

        self.name_list = []
        self.reqCount_list = []
        self.sg = Sig()
        parent.sg.updateTable.connect(self.updTbl)

    def addRestItem(self):
        name = self.restUnitName.text()
        if name in self.name_list:
            self.reqCount_list[self.name_list.index(
                name)] = self.reqCount_list[self.name_list.index(name)] + 1
        else:
            self.name_list.append(name)
            self.reqCount_list.append(1)
        table_model = RestaurantTableModeL(self.name_list, self.reqCount_list)
        self.restTable.setModel(table_model)
        self.restTable.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeToContents)
        self.restTable.horizontalHeader().setStretchLastSection(True)

    def startLottery(self):
        self.sg.lists.emit(self.name_list, self.reqCount_list)

    def selectRest(self):
        self.idx = self.restTable.currentIndex()
        self.restTable.selectRow(self.idx.row())

    def removeRestItem(self):
        self.idx = self.restTable.currentIndex()
        if self.reqCount_list[self.idx.row()] > 1:
            self.reqCount_list[self.idx.row()] -= 1
        else:
            self.name_list.pop(self.idx.row())
            self.reqCount_list.pop(self.idx.row())
        table_model = RestaurantTableModeL(self.name_list, self.reqCount_list)
        self.restTable.setModel(table_model)
        self.restTable.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeToContents)
        self.restTable.horizontalHeader().setStretchLastSection(True)

    @Slot(list)
    def updTbl(self, cnt):
        table_model = RestaurantTableModeL(self.name_list, self.reqCount_list,
                                           cnt)
        self.restTable.setModel(table_model)
        self.restTable.horizontalHeader().setSectionResizeMode(
            QHeaderView.ResizeToContents)
        self.restTable.horizontalHeader().setStretchLastSection(True)
Beispiel #2
0
class XDFStreamsDialog(QDialog):
    def __init__(self, parent, rows, selected=None, disabled=None):
        super().__init__(parent)
        self.setWindowTitle("Select XDF Stream")

        self.model = QStandardItemModel()
        self.model.setHorizontalHeaderLabels(
            ["ID", "Name", "Type", "Channels", "Format", "Sampling Rate"])

        for index, stream in enumerate(rows):
            items = []
            for item in stream:
                tmp = QStandardItem()
                tmp.setData(item, Qt.DisplayRole)
                items.append(tmp)
            for item in items:
                item.setEditable(False)
                if disabled is not None and index in disabled:
                    item.setFlags(Qt.NoItemFlags)
            self.model.appendRow(items)

        self.view = QTableView()
        self.view.setModel(self.model)
        self.view.verticalHeader().setVisible(False)
        self.view.horizontalHeader().setStretchLastSection(True)
        self.view.setShowGrid(False)
        self.view.setSelectionMode(QAbstractItemView.SingleSelection)
        self.view.setSelectionBehavior(QAbstractItemView.SelectRows)
        if selected is not None:
            self.view.selectRow(selected)
        self.view.setSortingEnabled(True)
        self.view.sortByColumn(0, Qt.AscendingOrder)

        vbox = QVBoxLayout(self)
        vbox.addWidget(self.view)
        hbox = QHBoxLayout()
        self._effective_srate = QCheckBox("Use effective sampling rate")
        self._effective_srate.setChecked(True)
        hbox.addWidget(self._effective_srate)
        self._prefix_markers = QCheckBox("Prefix markers with stream ID")
        self._prefix_markers.setChecked(False)
        if not disabled:
            self._prefix_markers.setEnabled(False)
        hbox.addWidget(self._prefix_markers)
        vbox.addLayout(hbox)
        self.buttonbox = QDialogButtonBox(QDialogButtonBox.Ok
                                          | QDialogButtonBox.Cancel)
        vbox.addWidget(self.buttonbox)
        self.buttonbox.accepted.connect(self.accept)
        self.buttonbox.rejected.connect(self.reject)

        self.resize(775, 650)
        self.view.setColumnWidth(0, 90)
        self.view.setColumnWidth(1, 200)
        self.view.setColumnWidth(2, 140)

    @property
    def effective_srate(self):
        return self._effective_srate.isChecked()

    @property
    def prefix_markers(self):
        return self._prefix_markers.isChecked()