Beispiel #1
0
    def __init__(self, parent=None):

        super(Form, self).__init__(parent)

        self.scale = 6
        self.new_life = True

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # The default shape is glider gun
        self.ui.radio_glider_gun.setChecked(True)

        self.scene = QGraphicsScene(self)
        self.scene.setSceneRect(0, 0, 600, 600)
        self.ui.surface.setScene(self.scene)

        self.ui.surface.setCacheMode(QGraphicsView.CacheBackground)

        self.color = QColor(0, 0, 0)
        self.brush = QBrush(self.color)
        self.pen = QPen()

        # Initialize the scene timer

        self.timer = QTimer()
        self.timer.timeout.connect(self.draw)

        # Connect button event handlers

        self.ui.button_start.clicked.connect(self.button_start_clicked)

        self.ui.button_pause.clicked.connect(self.button_pause_clicked)

        self.ui.button_stop.clicked.connect(self.button_stop_clicked)
 def __init__(self):
     super(AppWindow, self).__init__()
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     self.ui.actionPreset_Inputs.triggered.connect(self.preset_inputs)
     self.ui.actionExit.triggered.connect(self.close)
     self.ui.actionGroup_members.triggered.connect(self.show_members)
     self.ui.actionHelp.triggered.connect(self.help)
     self.ui.pushButton.clicked.connect(
         self.on_click)  # Connect "Run" button to function on_click()
     self.ui.pushButton_2.clicked.connect(self.close)
     self.show()
Beispiel #3
0
class PacketGUI(object):
    def __init__(self):
        pass

    def open(self, filename):
        app = QtGui.QApplication(sys.argv)

        self.ex = Ui_MainWindow()
        self.tablemodel = TickTableModel(JSONDumper(filename),
                                         parent=self.ex.tableView)

        self.ex.tableView.setSortingEnabled(True)

        self.tablemodel.jsondumper.demo.dump()
        self.ex.tableView.setModel(self.tablemodel)
        self.ex.tableView.selectionModel().currentChanged.connect(
            self.selection_changed)

        self.ex.tableView.resizeColumnsToContents()
        self.ex.show()
        sys.exit(app.exec_())

    def selection_changed(self, current, previous):
        selected_item = self.tablemodel.items[current.row()]

        self.ex.treeView.setHeaderLabels([selected_item.type])
        self.ex.treeView.clear()
        pitems = QtGui.QTreeWidgetItem(self.ex.treeView)
        pitems.setText(0, selected_item.type)
        self.get_recursive(selected_item.data, pitems)

    def get_recursive(self, data, parent):
        if isinstance(data, basestring):
            citems = QtGui.QTreeWidgetItem(parent)
            citems.setText(0, QtCore.QString(data))
        elif (type(data) == list and not isinstance(data, basestring)):
            for item in data:
                self.get_recursive(item, parent)
        else:
            dictz = dict(data)

            for k, v in dictz.items():
                citems = QtGui.QTreeWidgetItem(parent)
                if type(v) == dict or (type(v) == list
                                       and not isinstance(v, basestring)):
                    citems.setText(0, QtCore.QString(k))
                    self.get_recursive(v, citems)
                else:
                    citems.setText(
                        0,
                        QtCore.QString("{key}: {value}".format(key=k,
                                                               value=v)))
    def __init__(self):
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.square = Square()

        try:
            self.square.download()
            self.download()
        except Exception:
            self.ui.errorlabel.setText("Загрузка неудалась")

        self.ui.resultButton.clicked.connect(self.checkSquare)
        self.ui.creaeteButton.clicked.connect(self.crete_matrix)
class MainWindow(QtWidgets.QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.square = Square()

        try:
            self.square.download()
            self.download()
        except Exception:
            self.ui.errorlabel.setText("Загрузка неудалась")

        self.ui.resultButton.clicked.connect(self.checkSquare)
        self.ui.creaeteButton.clicked.connect(self.crete_matrix)

    def download(self):
        self.ui.tableWidget.setRowCount(4)
        self.ui.tableWidget.setColumnCount(4)
        for i in range(0, 4): 
            for j in range(0, 4):
                tableSpinBox = QtWidgets.QSpinBox()
                tableSpinBox.setMinimum(0) 
                tableSpinBox.setMaximum(self.square.N ** 2)
                tableSpinBox.setValue(self.square.square[i][j])
                self.ui.tableWidget.setCellWidget(i, j, tableSpinBox)

    def crete_matrix(self):
        N = 4
        self.square = Square(N)
        self.ui.errorlabel.clear()
        self.ui.result.clear()
        self.download()

    def closeEvent(self, event): 
        for i in range(0, self.square.N):
            for j in range(0, self.square.N):
                self.square.square[i][j] = self.ui.tableWidget.cellWidget(i, j).value()
        self.square.save()
        event.accept()

    def checkSquare(self):
        for i in range(0, self.square.N):
            for j in range(0, self.square.N):
                self.square.square[i][j] = self.ui.tableWidget.cellWidget(i, j).value()
        if self.square.isright(): 
            self.ui.result.setText("Правильное поле!")
        else:
            self.ui.result.setText("Неправильное поле")
Beispiel #6
0
    def open(self, filename):
        app = QtGui.QApplication(sys.argv)
        
        self.ex = Ui_MainWindow()
        self.tablemodel = TickTableModel(JSONDumper(filename), parent=self.ex.tableView)
        
        self.ex.tableView.setSortingEnabled(True)
        
        self.tablemodel.jsondumper.demo.dump()
        self.ex.tableView.setModel(self.tablemodel)
        self.ex.tableView.selectionModel().currentChanged.connect(self.selection_changed)

        self.ex.tableView.resizeColumnsToContents()
        self.ex.show()
        sys.exit(app.exec_())
class PacketGUI(object):  
    def __init__(self):
        pass
    
    def open(self, filename):
        app = QtGui.QApplication(sys.argv)
        
        self.ex = Ui_MainWindow()
        self.tablemodel = TickTableModel(JSONDumper(filename), parent=self.ex.tableView)
        
        self.ex.tableView.setSortingEnabled(True)
        
        self.tablemodel.jsondumper.demo.dump()
        self.ex.tableView.setModel(self.tablemodel)
        self.ex.tableView.selectionModel().currentChanged.connect(self.selection_changed)

        self.ex.tableView.resizeColumnsToContents()
        self.ex.show()
        sys.exit(app.exec_())
    
    def selection_changed(self, current, previous):
        selected_item = self.tablemodel.items[current.row()]
        
        self.ex.treeView.setHeaderLabels([selected_item.type])
        self.ex.treeView.clear()
        pitems = QtGui.QTreeWidgetItem(self.ex.treeView)
        pitems.setText(0, selected_item.type)
        self.get_recursive(selected_item.data, pitems)

    def get_recursive(self, data, parent):
        if isinstance(data, basestring):
            citems= QtGui.QTreeWidgetItem(parent)
            citems.setText(0, QtCore.QString(data))
        elif (type(data) == list and not isinstance(data, basestring)):
            for item in data:
                self.get_recursive(item, parent)
        else:
            dictz = dict(data)
            
            for k, v in dictz.items():
                citems= QtGui.QTreeWidgetItem(parent)
                if type(v) == dict or (type(v) == list and not isinstance(v, basestring)):
                    citems.setText(0, QtCore.QString(k))
                    self.get_recursive(v, citems)
                else:
                    citems.setText(0, QtCore.QString("{key}: {value}".format(key=k, value=v)))
class AppWindow(QMainWindow):
    def __init__(self):
        super(AppWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.actionPreset_Inputs.triggered.connect(self.preset_inputs)
        self.ui.actionExit.triggered.connect(self.close)
        self.ui.actionGroup_members.triggered.connect(self.show_members)
        self.ui.actionHelp.triggered.connect(self.help)
        self.ui.pushButton.clicked.connect(
            self.on_click)  # Connect "Run" button to function on_click()
        self.ui.pushButton_2.clicked.connect(self.close)
        self.show()

    @pyqtSlot()  # A decorator to link signals
    def on_click(self):
        initial = self.ui.lineEdit.text()
        bounds = self.ui.lineEdit_2.text()
        num_particles = self.ui.lineEdit_3.text()
        maxiter = self.ui.lineEdit_4.text()
        w = self.ui.lineEdit_5.text()
        c1 = self.ui.lineEdit_6.text()
        c2 = self.ui.lineEdit_7.text()

        # Convert to list of int type
        initial = list(map(int, initial.strip().split(',')))
        bounds = list(map(int, bounds.strip().split(',')))

        # Convert bounds to a list of list
        valueSize = len(initial)
        tempList = []
        tempBound = []
        for index, value in enumerate(bounds):
            tempList.append(value)
            if (index + 1) % valueSize == 0:
                tempBound.append(tempList)
                tempList = []
        bounds = tempBound

        # Convert to int or float
        num_particles = int(num_particles)
        maxiter = int(maxiter)
        w = float(w)
        c1 = int(c1)
        c2 = int(c2)

        PSO(func1, initial, bounds, num_particles, maxiter, w, c1, c2)
        QMessageBox.question(
            self, 'Result', "Global Best Position: " + str(globalBestPos) +
            "\nGlobal Best Error: " + str(globalBestErr), QMessageBox.Ok,
            QMessageBox.Ok)

    @pyqtSlot()
    def preset_inputs(self):
        self.ui.lineEdit.setText("5, 5")
        self.ui.lineEdit_2.setText("-10, 10, -10, 10")
        self.ui.lineEdit_3.setText("15")
        self.ui.lineEdit_4.setText("30")
        self.ui.lineEdit_5.setText("0.5")
        self.ui.lineEdit_6.setText("1")
        self.ui.lineEdit_7.setText("2")

    @pyqtSlot()
    def show_members(self):
        QMessageBox.question(self, 'Members',
                             "Made by:\nAkash Kumar (3312016009001091)",
                             QMessageBox.Ok, QMessageBox.Ok)

    @pyqtSlot()
    def help(self):
        QMessageBox.question(
            self, 'Help', "Use comma separated values for inputs."
            "\nUse Preset Inputs option from the Menu to use predefined values\n",
            QMessageBox.Ok, QMessageBox.Ok)
Beispiel #9
0
class Form(QMainWindow):
    def __init__(self, parent=None):

        super(Form, self).__init__(parent)

        self.scale = 6
        self.new_life = True

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        # The default shape is glider gun
        self.ui.radio_glider_gun.setChecked(True)

        self.scene = QGraphicsScene(self)
        self.scene.setSceneRect(0, 0, 600, 600)
        self.ui.surface.setScene(self.scene)

        self.ui.surface.setCacheMode(QGraphicsView.CacheBackground)

        self.color = QColor(0, 0, 0)
        self.brush = QBrush(self.color)
        self.pen = QPen()

        # Initialize the scene timer

        self.timer = QTimer()
        self.timer.timeout.connect(self.draw)

        # Connect button event handlers

        self.ui.button_start.clicked.connect(self.button_start_clicked)

        self.ui.button_pause.clicked.connect(self.button_pause_clicked)

        self.ui.button_stop.clicked.connect(self.button_stop_clicked)

    # The start button event handler
    def button_start_clicked(self):

        if self.new_life:
            self.new_life = False
            self.life_shape = self.select_life()
            self.matrix = model.first_generation(100, 100, self.life_shape)
        self.timer.start(10)

    # The pause button event handler
    def button_pause_clicked(self):
        self.timer.stop()

    # The stop button event handler
    def button_stop_clicked(self):

        self.timer.stop()
        self.scene.clear()
        self.new_life = True

    # Which game of life shape the user selected?
    def select_life(self):

        if self.ui.radio_toad.isChecked():
            life = model.TOAD
        elif self.ui.radio_beacon.isChecked():
            life = model.BEACON
        elif self.ui.radio_glider.isChecked():
            life = model.GLIDER
        elif self.ui.radio_glider_gun.isChecked():
            life = model.GLIDER_GUN
        elif self.ui.radio_life_spaceship.isChecked():
            life = model.LIFE_SPACESHIP
        elif self.ui.radio_pentomino.isChecked():
            life = model.PENTOMINO

        return life

    # Draw the game of life generation
    def draw(self):

        self.scene.clear()

        for (x, y), value in numpy.ndenumerate(self.matrix):

            if value == 1:

                x_sc = x * self.scale
                y_sc = y * self.scale
                rect = QRectF(x_sc, y_sc, self.scale, self.scale)
                self.scene.addRect(rect, self.pen, self.brush)

        self.matrix = model.next_generation(self.matrix)
Beispiel #10
0
        self.finished_adq.emit()

    def stop(self):
        print("Cancel!")
        self.mutex_stop.lock()
        self.cancel = True
        self.mutex_stop.unlock()

    def __del__(self):
        self.headset.close()


if __name__ == "__main__":

    app = QApplication([])
    window = QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(window)
    window.show()

    emotivObj = QtEEG(ui)
    adqThread = QtCore.QThread()
    emotivObj.moveToThread(adqThread)
    emotivObj.finished_adq.connect(adqThread.quit)
    adqThread.started.connect(emotivObj.plotEEG)

    ui.startEEG.clicked.connect(adqThread.start)
    ui.stopEEG.clicked.connect(emotivObj.stop)

    sys.exit(app.exec_())