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)
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()
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)
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)