class Window(QWidget):
    def __init__(self):
        super().__init__()

        self.showMaximized()
        self.setWindowTitle('Barbequer')
        self.setWindowIcon(QIcon('BBQ.png'))
        self.init()

    def init(self):

        self.size_policy = (QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.font = QFont()
        self.font.setPointSize(16)

        self.temp_display_label = QLabel(self)
        self.temp_display_label.setText('Current Temperature:')
        self.temp_display_label.setSizePolicy(self.size_policy[0],
                                              self.size_policy[1])
        self.temp_display_label.setFont(self.font)
        #        self.temp_display_label.setAlignment(Qt.AlignRight)

        self.temp_display = QLCDNumber(self)
        self.temp_display.setSizePolicy(self.size_policy[0],
                                        self.size_policy[1])
        self.temp_display.setFont(self.font)

        self.temp_set_label = QLabel(self)
        self.temp_set_label.setText('Set Temperature:')
        self.temp_set_label.setSizePolicy(self.size_policy[0],
                                          self.size_policy[1])
        self.temp_set_label.setFont(self.font)
        #        self.temp_set_label.setAlignment(Qt.AlignRight)

        self.temp_set = QLCDNumber(self)
        self.temp_set.setSizePolicy(self.size_policy[0], self.size_policy[1])
        self.temp_set.setFont(self.font)

        self.temp_dial = QDial(self)
        self.temp_dial.setSizePolicy(self.size_policy[0], self.size_policy[1])
        self.temp_dial.setProperty('value', 0)
        self.temp_dial.setSliderPosition(0)
        self.temp_dial.setNotchesVisible(True)
        self.temp_dial.setMaximum(600)
        self.temp_dial.setToolTip('Set Desired Temperature in Fahrenheit')
        self.temp_dial.valueChanged.connect(self.update_temperature)

        self.exhasut_fan = QRadioButton('&Enable Exhaust Fan')
        self.exhasut_fan.setSizePolicy(self.size_policy[0],
                                       self.size_policy[1])
        self.exhasut_fan.setFont(self.font)
        self.exhasut_fan.setToolTip('Enable exhaust fan')

        self.intake_fan = QRadioButton('&Enable Intake Fan')
        self.intake_fan.setSizePolicy(self.size_policy[0], self.size_policy[1])
        self.intake_fan.setFont(self.font)
        self.intake_fan.setToolTip('Enable intake fan')

        self.start_button = QPushButton('Start', self)
        self.start_button.setSizePolicy(self.size_policy[0],
                                        self.size_policy[1])
        self.start_button.setFont(self.font)
        self.start_button.setToolTip('Start Maintaining Temperature')
        self.start_button.clicked.connect(self.maintain_temperature)

        self.timer_button = QPushButton('Timer', self)
        self.timer_button.setSizePolicy(self.size_policy[0],
                                        self.size_policy[1])
        self.timer_button.setFont(self.font)
        self.timer_button.setToolTip('Cook Time')

        qp = QPainter()
        qp.begin(self)
        qp.setPen(QPen(QColor(255, 80, 0), 3))
        qp.setBrush(QColor(255, 80, 0))
        qp.drawEllipse(QPoint(50, 60), 30, 30)
        qp.end()

        #add the grid layout to the interface
        self.layout = QGridLayout(self)
        self.layout.addWidget(self.temp_dial, 0, 0, 2, 2)
        self.layout.addWidget(self.temp_set_label, 2, 0)
        self.layout.addWidget(self.temp_set, 2, 1, 1, 2)
        self.layout.addWidget(self.temp_display_label, 3, 0)
        self.layout.addWidget(self.temp_display, 3, 1)
        self.layout.addWidget(self.exhasut_fan, 4, 0)
        self.layout.addWidget(self.intake_fan, 4, 1)
        self.layout.addWidget(self.start_button, 5, 0)
        self.layout.addWidget(self.timer_button, 5, 1)


#        self.layout.addWidget(qp,6,1)

    def update_temperature(self):
        self.temp_set.display(str(self.temp_dial.sliderPosition()))
        try:
            self.start_button.setEnabled(True)
            self.Temp.stop()
        except:
            '''do nothing here'''

    def maintain_temperature(self):
        self.Temp = temp_operation(self)
        self.start_button.setDisabled(True)
        self.Temp.isRunning = False
        time.sleep(1)
        if self.Temp.isRunning == False:
            self.Temp.isRunning = True
            self.Temp.set_temp = self.temp_dial.sliderPosition()
            self.Temp.display_update.connect(self.temp_display.display)
            self.Temp.start()
            print(self.Temp.isRunning)
Exemplo n.º 2
0
class Display(QWidget):
    def __init__(self):
        super().__init__()
        self.showMaximized()
        self.setWindowTitle('D250 Speedometer v1.0')
        font = QFont()
        font.setPointSize(16)

        #displaying the throttle position from the stepper motor controller
        self.throttle_position = QProgressBar(self)
        self.throttle_position.setFont(font)
        self.throttle_position.setSizePolicy(QSizePolicy.Expanding,
                                             QSizePolicy.Expanding)
        self.throttle_position.setMaximumHeight(30)

        #use thread to display value
        self.speed = QLCDNumber(self)
        self.speed.setFont(font)
        self.speed.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        #Indication of various vehicle parameters
        self.cruise_indicator = QLineEdit(self)
        self.cruise_indicator.setReadOnly(True)
        self.cruise_indicator.setFont(font)
        self.cruise_indicator.setSizePolicy(QSizePolicy.Expanding,
                                            QSizePolicy.Expanding)
        self.cruise_indicator.setAlignment(q.Qt.AlignRight)
        self.cruise_indicator.setMaximumHeight(100)

        #values of vehicle parameters
        self.indicator = QLineEdit(self)
        self.indicator.setReadOnly(True)
        self.indicator.setFont(font)
        self.indicator.setSizePolicy(QSizePolicy.Expanding,
                                     QSizePolicy.Expanding)
        self.indicator.setAlignment(q.Qt.AlignRight)
        self.indicator.setMaximumHeight(100)

        #incorporation of cruise control feature to maintain and resume the vehicle speed
        self.set_cruise = QPushButton('Set', self)
        self.set_cruise.setCheckable(True)
        self.set_cruise.setFont(font)
        self.set_cruise.setSizePolicy(QSizePolicy.Expanding,
                                      QSizePolicy.Expanding)
        self.set_cruise.clicked.connect(self.sets)
        self.set_cruise.setDisabled(True)

        #resume vehicle speed
        self.resume = QPushButton('Resume', self)
        self.resume.setFont(font)
        self.resume.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.resume.clicked.connect(self.resumes)
        self.resume.setDisabled(True)

        #cancel cruise
        self.cancel = QPushButton('Cancel', self)
        self.cancel.setFont(font)
        self.cancel.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.cancel.clicked.connect(self.cancels)
        self.cancel.setDisabled(True)

        #turn cruise on and off
        self.cruise_state = QPushButton('On\Off', self)
        self.cruise_state.setCheckable(True)
        self.cruise_state.setFont(font)
        self.cruise_state.setSizePolicy(QSizePolicy.Expanding,
                                        QSizePolicy.Expanding)
        self.cruise_state.clicked.connect(self.on_off)

        'Add the layout to the widget'
        layout = QGridLayout()
        layout.addWidget(self.speed, 0, 1)
        layout.addWidget(self.cruise_indicator, 1, 1)
        layout.addWidget(self.indicator, 2, 1)
        layout.addWidget(self.resume, 0, 2)
        layout.addWidget(self.set_cruise, 1, 0, 2, 1)
        layout.addWidget(self.cancel, 1, 2, 2, 1)
        layout.addWidget(self.cruise_state, 0, 0)

        vlayout = QVBoxLayout()
        vlayout.addLayout(layout)
        vlayout.addWidget(self.throttle_position)
        self.setLayout(vlayout)
        self.initUI()

    def initUI(self):
        '''Setting up the GUI'''
        self.th = Mileage(self)
        self.th.changelcd.connect(self.speed.display)
        self.th.change_odometer.connect(self.cruise_indicator.setText)
        self.th.start()

        self.gauges = Gauge_Readouts(self)
        self.gauges.values.connect(self.indicator.setText)
        self.gauges.start()

    def on_off(self):
        '''State of the Cruise Control'''
        if self.cruise_state.isChecked() == True:
            self.cruise_indicator.setText('On')
            self.set_cruise.setEnabled(True)

        elif self.cruise_state.isChecked() == False:
            self.cruise_indicator.setText('Off')
            self.cancel.setEnabled(False)
            self.resume.setEnabled(False)
            self.set_cruise.setEnabled(False)

    def resumes(self):
        '''Resumes the pickup to set speed'''
        self.indicator.setText('Resuming to {:.1f}:'.format(self.set_speed))
        self.maintain = Throttle_Position(self.set_speed)
        self.maintain.throttle_position.connect(
            self.throttle_position.setValue)
        self.maintain.start()

    def cancels(self):
        '''Cancels and keeps set speed'''
        self.indicator.setText('Cancel')
        self.resume.setEnabled(True)
        self.maintain.running = False

    def sets(self):
        '''Sets the speed for the cruise control'''
        self.set_speed = sp.Gauges.find_speed(self)[0]
        self.indicator.setText('Set at {:.1f}'.format(self.set_speed))
        self.cancel.setEnabled(True)
        self.resume.setEnabled(False)
        self.maintain = Throttle_Position(self.set_speed)
        self.maintain.throttle_position.connect(
            self.throttle_position.setValue)
        self.maintain.start()
Exemplo n.º 3
0
class Display(QWidget):
    def __init__(self):
        super().__init__()
        self.showMaximized()
        self.setWindowTitle('D250 Speedometer v1.0')
        font = QFont()
        font.setPointSize(16)

        self.throttle_position = QProgressBar(self)
        self.throttle_position.setFont(font)
        self.throttle_position.setSizePolicy(QSizePolicy.Expanding,
                                             QSizePolicy.Expanding)
        self.throttle_position.setMaximumHeight(30)

        self.speed = QLCDNumber(self)
        self.speed.setFont(font)
        self.speed.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        #use thread to display value

        self.cruise_indicator = QLineEdit(self)
        self.cruise_indicator.setReadOnly(True)
        self.cruise_indicator.setFont(font)
        self.cruise_indicator.setSizePolicy(QSizePolicy.Expanding,
                                            QSizePolicy.Expanding)
        self.cruise_indicator.setAlignment(q.Qt.AlignRight)
        self.cruise_indicator.setMaximumHeight(100)

        self.indicator = QLineEdit(self)
        self.indicator.setReadOnly(True)
        self.indicator.setFont(font)
        self.indicator.setSizePolicy(QSizePolicy.Expanding,
                                     QSizePolicy.Expanding)
        self.indicator.setAlignment(q.Qt.AlignRight)
        self.indicator.setMaximumHeight(100)

        self.set_cruise = QPushButton('Set', self)
        self.set_cruise.setCheckable(True)
        self.set_cruise.setFont(font)
        self.set_cruise.setSizePolicy(QSizePolicy.Expanding,
                                      QSizePolicy.Expanding)
        self.set_cruise.clicked.connect(self.sets)

        self.resume = QPushButton('Resume', self)
        self.resume.setFont(font)
        self.resume.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.resume.clicked.connect(self.resumes)

        self.cancel = QPushButton('Cancel', self)
        self.cancel.setFont(font)
        self.cancel.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.cancel.clicked.connect(self.cancels)

        self.cruise_state = QPushButton('On\Off', self)
        self.cruise_state.setCheckable(True)
        self.cruise_state.setFont(font)
        self.cruise_state.setSizePolicy(QSizePolicy.Expanding,
                                        QSizePolicy.Expanding)
        self.cruise_state.clicked.connect(self.on_off)

        'Add the layout to the widget'

        layout = QGridLayout()
        layout.addWidget(self.speed, 0, 1)
        layout.addWidget(self.cruise_indicator, 1, 1)
        layout.addWidget(self.indicator, 2, 1)
        layout.addWidget(self.resume, 0, 2)
        layout.addWidget(self.set_cruise, 1, 0, 2, 1)
        layout.addWidget(self.cancel, 1, 2, 2, 1)
        layout.addWidget(self.cruise_state, 0, 0)

        vlayout = QVBoxLayout()
        vlayout.addLayout(layout)
        vlayout.addWidget(self.throttle_position)
        self.setLayout(vlayout)
        self.initUI()

    def initUI(self):
        '''Setting up the GUI'''
        self.th = Thread(self)
        self.th.changeprogressbar.connect(self.throttle_position.setValue)
        self.th.changelcd.connect(self.speed.display)
        self.th.change_odometer.connect(self.cruise_indicator.setText)
        self.th.start()

    def on_off(self):
        '''State of the Cruise Control'''
        if self.cruise_state.isChecked() == True:
            self.cruise_indicator.setText('On')
        elif self.cruise_state.isChecked() == False:
            self.cruise_indicator.setText('Off')

    def resumes(self):
        '''Resumes the pickup to set speed'''
        self.cruise_indicator.setText('Resuming')
        time.sleep(2)
        self.th.change_odometer.connect(self.cruise_indicator.setText)

    def cancels(self):
        '''Cancels and keeps set speed'''
        self.cruise_indicator.setText('Cancels')
        time.sleep(2)
        self.th.change_odometer.connect(self.cruise_indicator.setText)

    def sets(self):
        '''Sets the speed for the cruise control'''
        self.cruise_indicator.setText('Set')
        time.sleep(2)
        self.th.change_odometer.connect(self.cruise_indicator.setText)
Exemplo n.º 4
0
class Drawing(QWidget):
    def __init__(self, parent=None):
        super(Drawing, self).__init__(parent)
        self.initUI()

    def initUI(self):
        self.lcd = QLCDNumber(self)
        self.game = Game(self, self.lcd)
        self.resize(WIDTH, HEIGHT)  # 固定大小
        self.setMinimumSize(QtCore.QSize(WIDTH, HEIGHT))
        self.setMaximumSize(QtCore.QSize(WIDTH, HEIGHT))
        self.setWindowTitle("Amazons")  # 窗口名称
        self.ininFunction()
        self.show()

    def paintEvent(self, e):  #绘制棋盘
        qp = QPainter()
        qp.begin(self)
        col = QColor(0, 0, 0)
        col.setNamedColor('#d4d4d4')
        qp.setPen(col)
        off = True
        for i in range(0, 10):
            for j in range(0, 10):
                if (off):
                    off = False
                    qp.setBrush(QColor(236, 207, 152))
                    qp.drawRect(i * RECT + BORDER, j * RECT + BORDER, RECT,
                                RECT)
                else:
                    off = True
                    qp.setBrush(QColor(131, 67, 47))
                    qp.drawRect(i * RECT + BORDER, j * RECT + BORDER, RECT,
                                RECT)
            if (off):
                off = False
            else:
                off = True
        qp.end()

    def ininFunction(self):
        self.startButton = QPushButton('Button', self)
        self.startButton.setText("开始游戏")
        self.startButton.resize(self.startButton.sizeHint())
        self.startButton.setGeometry(QtCore.QRect(950, 150, 150, 60))
        self.startButton.setFont(QFont("微软雅黑", 15, QFont.Bold))
        self.startButton.clicked.connect(self.startButtonClick)

        self.restartButton = QPushButton('Button', self)
        self.restartButton.setText("重新开始")
        self.restartButton.resize(self.restartButton.sizeHint())
        self.restartButton.setGeometry(QtCore.QRect(950, 250, 150, 60))
        self.restartButton.setFont(QFont("微软雅黑", 15, QFont.Bold))
        self.restartButton.clicked.connect(self.restartButtonClick)

        self.retractButton = QPushButton('Button', self)
        self.retractButton.setText("悔棋")
        self.retractButton.resize(self.retractButton.sizeHint())
        self.retractButton.setGeometry(QtCore.QRect(950, 350, 150, 60))
        self.retractButton.setFont(QFont("微软雅黑", 15, QFont.Bold))
        self.retractButton.clicked.connect(self.retractButtonClick)

        self.lcd.setGeometry(QRect(330, 220, 200, 70))
        self.lcd.setFont(QFont("微软雅黑", 20, QFont.Bold))
        self.lcd.setGeometry(QtCore.QRect(400, 20, 200, 60))
        self.lcd.display("00:00")

    def startButtonClick(self):
        text = self.startButton.text().encode("utf-8")
        if (text == "开始游戏"):
            self.game.startGame()
            self.startButton.setText("暂停游戏")
        elif (text == "暂停游戏"):
            self.game.stopGame()
            self.startButton.setText("继续游戏")
        elif (text == "继续游戏"):
            self.startButton.setText("暂停游戏")
            self.game.keepGame()

    def restartButtonClick(self):
        self.game.restartGame()
        text = self.startButton.text().encode("utf-8")
        if (text == "暂停游戏" or text == "继续游戏"):
            self.startButton.setText("开始游戏")

    def retractButtonClick(self):
        self.game.retract()

    def mousePressEvent(self, QMouseEvent):
        x = (QMouseEvent.x() - BORDER) / RECT
        y = (QMouseEvent.y() - BORDER) / RECT
        if (x >= 10 or y >= 10 or x < 0 or y < 0):  #越界
            return
        else:
            self.game.onClick(x, y)