mirror of
https://github.com/OSURoboticsClub/Rover_2017_2018.git
synced 2025-11-08 10:11:14 +00:00
Ken fixed statuses. Chris got map indicator working.
This commit is contained in:
@@ -360,6 +360,7 @@ class OverlayImage(object):
|
|||||||
self.upper_y = (self.center_y - (self.height/2))
|
self.upper_y = (self.center_y - (self.height/2))
|
||||||
|
|
||||||
self.generate_image_files()
|
self.generate_image_files()
|
||||||
|
self.write_once = True
|
||||||
|
|
||||||
def generate_image_files(self):
|
def generate_image_files(self):
|
||||||
"""
|
"""
|
||||||
@@ -372,6 +373,7 @@ class OverlayImage(object):
|
|||||||
self.display_image = self.helper.new_image(self.width, self.height,
|
self.display_image = self.helper.new_image(self.width, self.height,
|
||||||
True)
|
True)
|
||||||
self.generate_dot_and_hat()
|
self.generate_dot_and_hat()
|
||||||
|
self.indicator.save("location.png")
|
||||||
|
|
||||||
def _get_cartesian(self, lat, lon):
|
def _get_cartesian(self, lat, lon):
|
||||||
"""
|
"""
|
||||||
@@ -389,11 +391,8 @@ class OverlayImage(object):
|
|||||||
|
|
||||||
# print viewport_lon_diff, viewport_lat_diff
|
# print viewport_lon_diff, viewport_lat_diff
|
||||||
|
|
||||||
bigimage_width = self.width
|
pixel_per_lat = self.big_height / viewport_lat_diff
|
||||||
bigimage_height = self.height
|
pixel_per_lon = self.big_width / viewport_lon_diff
|
||||||
|
|
||||||
pixel_per_lat = bigimage_height / viewport_lat_diff
|
|
||||||
pixel_per_lon = bigimage_width / viewport_lon_diff
|
|
||||||
# print "Pixel per:", pixel_per_lat, pixel_per_lon
|
# print "Pixel per:", pixel_per_lat, pixel_per_lon
|
||||||
|
|
||||||
new_lat_gps_range_percentage = (viewport_lat_nw - lat)
|
new_lat_gps_range_percentage = (viewport_lat_nw - lat)
|
||||||
@@ -410,12 +409,12 @@ class OverlayImage(object):
|
|||||||
size = 5
|
size = 5
|
||||||
draw = PIL.ImageDraw.Draw(self.big_image)
|
draw = PIL.ImageDraw.Draw(self.big_image)
|
||||||
for element in navigation_list:
|
for element in navigation_list:
|
||||||
x, y = self._get_cartesian(float(element[1]), float(element[2]))
|
x, y = self._get_cartesian(float(element[2]), float(element[1]))
|
||||||
draw.ellipsis((x-size, y-size, x+size, y+size), fill="red")
|
draw.ellipse((x-size, y-size, x+size, y+size), fill="red")
|
||||||
# for element in landmark_list:
|
# for element in landmark_list:
|
||||||
# x, y = self._get_cartesian(element[1], element[2])
|
# x, y = self._get_cartesian(element[1], element[2])
|
||||||
# draw.ellipsis((x-size, y-size, x+size, y+size), fill="blue")
|
# draw.ellipsis((x-size, y-size, x+size, y+size), fill="blue")
|
||||||
self._draw_rover(latitude, longitude, compass)
|
self._draw_rover(longitude, latitude, compass)
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
return self.display_image
|
return self.display_image
|
||||||
@@ -429,14 +428,21 @@ class OverlayImage(object):
|
|||||||
|
|
||||||
def _draw_rover(self, lat, lon, angle=0):
|
def _draw_rover(self, lat, lon, angle=0):
|
||||||
x, y = self._get_cartesian(lat, lon)
|
x, y = self._get_cartesian(lat, lon)
|
||||||
|
print x,y
|
||||||
# Center of the circle on the indicator is (12.5, 37.5)
|
# Center of the circle on the indicator is (12.5, 37.5)
|
||||||
x = x - 50
|
x = x - 50
|
||||||
y = y - 50
|
y = y - 50
|
||||||
rotated = self.indicator.copy()
|
rotated = self.indicator.copy()
|
||||||
rotated = rotated.rotate(angle, expand=True)
|
rotated = rotated.rotate(angle, expand=True)
|
||||||
self.display_image.paste(self.indicator, (x, y))
|
rotated.save("rotated.png")
|
||||||
# self.display_image.save("Something.png")
|
self.big_image.paste(rotated, (x, y), rotated)
|
||||||
|
if self.write_once:
|
||||||
|
self.display_image.save("Something.png")
|
||||||
|
self.write_once = False
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
self.display_image.paste(self.big_image, (-self.left_x, -self.upper_y))
|
self.display_image.paste(self.big_image, (-self.left_x, -self.upper_y))
|
||||||
|
|
||||||
|
def connect_signals_and_slots(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class RoverMapCoordinator(QtCore.QThread):
|
|||||||
self.setup_map_flag = False
|
self.setup_map_flag = False
|
||||||
else:
|
else:
|
||||||
self._get_map_image()
|
self._get_map_image()
|
||||||
self.msleep(3)
|
self.msleep(30)
|
||||||
|
|
||||||
self.logger.debug("Stopping Map Coordinator Thread")
|
self.logger.debug("Stopping Map Coordinator Thread")
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ class RoverMapCoordinator(QtCore.QThread):
|
|||||||
720,
|
720,
|
||||||
44.567161,
|
44.567161,
|
||||||
-123.278432,
|
-123.278432,
|
||||||
14,
|
18,
|
||||||
'satellite',
|
'satellite',
|
||||||
None, 20)
|
None, 20)
|
||||||
self.overlay_image_object = (
|
self.overlay_image_object = (
|
||||||
@@ -124,23 +124,22 @@ class RoverMapCoordinator(QtCore.QThread):
|
|||||||
temp_list = []
|
temp_list = []
|
||||||
count = UI_element.rowCount()
|
count = UI_element.rowCount()
|
||||||
for row in range(0, count):
|
for row in range(0, count):
|
||||||
num = UI_element.itemAt(row, 0).data
|
num = UI_element.item(row, 0).text()
|
||||||
lat = UI_element.itemAt(row, 1).data
|
lat = float(UI_element.item(row, 1).text())
|
||||||
lng = UI_element.itemAt(row, 2).data
|
lng = float(UI_element.item(row, 2).text())
|
||||||
temp_tuple = (num, lat, lng)
|
temp_tuple = (num, lat, lng)
|
||||||
temp_list.append(temp_tuple)
|
temp_list.append(temp_tuple)
|
||||||
return temp_list
|
return temp_list
|
||||||
|
|
||||||
def update_overlay(self):
|
def update_overlay(self):
|
||||||
longitude = 44.567161,
|
longitude = 44.567161
|
||||||
latitude = -123.278432,
|
latitude = -123.278432
|
||||||
navigation_list = self._get_table_elements(self.navigation_label)
|
navigation_list = self._get_table_elements(self.navigation_label)
|
||||||
for x in navigation_list:
|
|
||||||
self.logger.debug(str(x))
|
|
||||||
# landmark_list = self._get_table_elements(self.landmark_label)
|
# landmark_list = self._get_table_elements(self.landmark_label)
|
||||||
landmark_list = []
|
landmark_list = []
|
||||||
self.overlay_image_object.update_new_location(latitude,
|
self.overlay_image = self.overlay_image_object.update_new_location(latitude,
|
||||||
longitude,
|
longitude,
|
||||||
70,
|
70,
|
||||||
navigation_list,
|
navigation_list,
|
||||||
landmark_list)
|
landmark_list)
|
||||||
|
# self.overlay_image.save("something.png")
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import rospy
|
|||||||
from rover_status.msg import *
|
from rover_status.msg import *
|
||||||
from PyQt5 import QtWidgets, QtCore, QtGui, uic
|
from PyQt5 import QtWidgets, QtCore, QtGui, uic
|
||||||
from std_msgs.msg import Empty
|
from std_msgs.msg import Empty
|
||||||
|
# import Timer
|
||||||
|
|
||||||
REQUEST_UPDATE_TOPIC = "/rover_status/update_requested"
|
REQUEST_UPDATE_TOPIC = "/rover_status/update_requested"
|
||||||
|
|
||||||
@@ -40,7 +41,6 @@ class SensorCore(QtCore.QThread):
|
|||||||
|
|
||||||
frsky_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
|
frsky_stylesheet_change_ready__signal = QtCore.pyqtSignal(str)
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, shared_objects):
|
def __init__(self, shared_objects):
|
||||||
super(SensorCore, self).__init__()
|
super(SensorCore, self).__init__()
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ class SensorCore(QtCore.QThread):
|
|||||||
self.jetson_msg = JetsonInfo()
|
self.jetson_msg = JetsonInfo()
|
||||||
self.misc_msg = MiscStatuses()
|
self.misc_msg = MiscStatuses()
|
||||||
|
|
||||||
rospy.Publisher(REQUEST_UPDATE_TOPIC, Empty, queue_size=1).publish(Empty())
|
self.update_requester = rospy.Publisher(REQUEST_UPDATE_TOPIC, Empty, queue_size=10)
|
||||||
|
|
||||||
def __camera_callback(self, data):
|
def __camera_callback(self, data):
|
||||||
self.camera_msg.camera_zed = data.camera_zed
|
self.camera_msg.camera_zed = data.camera_zed
|
||||||
@@ -95,28 +95,28 @@ class SensorCore(QtCore.QThread):
|
|||||||
self.camera_msg.camera_chassis = data.camera_chassis
|
self.camera_msg.camera_chassis = data.camera_chassis
|
||||||
self.camera_msg.camera_main_navigation = data.camera_main_navigation
|
self.camera_msg.camera_main_navigation = data.camera_main_navigation
|
||||||
|
|
||||||
if self.camera_msg.camera_zed is False:
|
if data.camera_zed is False:
|
||||||
# self.zed.setStyleSheet("background-color: red;")
|
# self.zed.setStyleSheet("background-color: red;")
|
||||||
self.camera_zed_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.camera_zed_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
# self.zed.setStyleSheet("background-color: darkgreen;")
|
# self.zed.setStyleSheet("background-color: darkgreen;")
|
||||||
self.camera_zed_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.camera_zed_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
if self.camera_msg.camera_undercarriage is False:
|
if data.camera_undercarriage is False:
|
||||||
# self.under_cam.setStyleSheet("background-color: darkred;")
|
# self.under_cam.setStyleSheet("background-color: darkred;")
|
||||||
self.camera_under_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.camera_under_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
# self.under_cam.setStyleSheet("background-color: darkgreen;")
|
# self.under_cam.setStyleSheet("background-color: darkgreen;")
|
||||||
self.camera_under_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.camera_under_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
if self.camera_msg.camera_chassis is False:
|
if data.camera_chassis is False:
|
||||||
# self.chassis_cam.setStyleSheet("background-color: darkred;")
|
# self.chassis_cam.setStyleSheet("background-color: darkred;")
|
||||||
self.camera_chassis_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.camera_chassis_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
# self.chassis_cam.setStyleSheet("background-color: darkgreen;")
|
# self.chassis_cam.setStyleSheet("background-color: darkgreen;")
|
||||||
self.camera_chassis_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.camera_chassis_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
if self.camera_msg.camera_main_navigation is False:
|
if data.camera_main_navigation is False:
|
||||||
# self.main_cam.setStyleSheet("background-color: darkred;")
|
# self.main_cam.setStyleSheet("background-color: darkred;")
|
||||||
self.camera_main_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.camera_main_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
@@ -136,21 +136,21 @@ class SensorCore(QtCore.QThread):
|
|||||||
self.bogie_msg.bogie_connection_2 = data.bogie_connection_2
|
self.bogie_msg.bogie_connection_2 = data.bogie_connection_2
|
||||||
self.bogie_msg.bogie_connection_3 = data.bogie_connection_3
|
self.bogie_msg.bogie_connection_3 = data.bogie_connection_3
|
||||||
|
|
||||||
if self.bogie_msg.bogie_connection_1 is False:
|
if data.bogie_connection_1 is False:
|
||||||
# self.bogie_right.setStyleSheet("background-color: darkred;")
|
# self.bogie_right.setStyleSheet("background-color: darkred;")
|
||||||
self.bogie_connection_1_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.bogie_connection_1_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
# self.bogie_right.setStyleSheet("background-color: darkgreen;")
|
# self.bogie_right.setStyleSheet("background-color: darkgreen;")
|
||||||
self.bogie_connection_1_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.bogie_connection_1_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
if self.bogie_msg.bogie_connection_2 is False:
|
if data.bogie_connection_2 is False:
|
||||||
# self.bogie_left.setStyleSheet("background-color: darkred;")
|
# self.bogie_left.setStyleSheet("background-color: darkred;")
|
||||||
self.bogie_connection_2_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.bogie_connection_2_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
# self.bogie_left.setStyleSheet("background-color: darkgreen;")
|
# self.bogie_left.setStyleSheet("background-color: darkgreen;")
|
||||||
self.bogie_connection_2_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.bogie_connection_2_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
if self.bogie_msg.bogie_connection_3 is False:
|
if data.bogie_connection_3 is False:
|
||||||
# self.bogie_rear.setStyleSheet("background-color: darkred;")
|
# self.bogie_rear.setStyleSheet("background-color: darkred;")
|
||||||
self.bogie_connection_3_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.bogie_connection_3_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
@@ -158,55 +158,48 @@ class SensorCore(QtCore.QThread):
|
|||||||
self.bogie_connection_3_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.bogie_connection_3_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
def __jetson_callback(self, data):
|
def __jetson_callback(self, data):
|
||||||
self.jetson_msg.jetson_CPU = data.jetson_CPU
|
self.jetson_cpu_update_ready__signal.emit(str(data.jetson_CPU))
|
||||||
|
|
||||||
# self.cpu_read.setText(str(self.jetson_msg.jetson_CPU))
|
if data.jetson_CPU > 79:
|
||||||
# self.cpu.setText(str(self.jetson_msg.jetson_CPU))
|
|
||||||
self.jetson_cpu_update_ready__signal.emit(str(self.jetson_msg.jetson_CPU))
|
|
||||||
|
|
||||||
if self.jetson_msg.jetson_CPU > 79:
|
|
||||||
self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: orange;")
|
self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: orange;")
|
||||||
elif self.jetson_msg.jetson_CPU > 89:
|
elif data.jetson_CPU > 89:
|
||||||
self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.jetson_cpu_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
self.jetson_ram_update_ready__signal.emit(str(self.jetson_msg.jetson_RAM))
|
self.jetson_ram_update_ready__signal.emit(str(data.jetson_RAM))
|
||||||
|
|
||||||
if self.jetson_msg.jetson_RAM > 79:
|
if data.jetson_RAM > 79:
|
||||||
self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: orange;")
|
self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: orange;")
|
||||||
elif self.jetson_msg.jetson_RAM > 89:
|
elif data.jetson_RAM > 89:
|
||||||
self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.jetson_ram_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
self.jetson_gpu_temp_update_ready__signal.emit(str(self.jetson_msg.jetson_GPU_temp))
|
self.jetson_gpu_temp_update_ready__signal.emit(str(data.jetson_GPU_temp))
|
||||||
|
|
||||||
if self.jetson_msg.jetson_GPU_temp > 64:
|
if data.jetson_GPU_temp > 64:
|
||||||
self.jetson_gpu_temp_stylesheet_change_ready__signal.emit("background-color: orange;")
|
self.jetson_gpu_temp_stylesheet_change_ready__signal.emit("background-color: orange;")
|
||||||
elif self.jetson_msg.jetson_GPU_temp > 79:
|
elif data.jetson_GPU_temp > 79:
|
||||||
self.jetson_gpu_temp_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.jetson_gpu_temp_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
self.jetson_gpu_temp_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.jetson_gpu_temp_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
self.jetson_emmc_update_ready__signal.emit(str(self.jetson_msg.jetson_EMMC))
|
self.jetson_emmc_update_ready__signal.emit(str(data.jetson_EMMC))
|
||||||
|
|
||||||
if self.jetson_msg.jetson_EMMC > 79:
|
if data.jetson_EMMC > 79:
|
||||||
self.jetson_emmc_stylesheet_change_ready__signal.emit("background-color: orange;")
|
self.jetson_emmc_stylesheet_change_ready__signal.emit("background-color: orange;")
|
||||||
elif self.jetson_msg.jetson_EMMC > 89:
|
elif data.jetson_EMMC > 89:
|
||||||
self.jetson_emmc_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.jetson_emmc_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
self.jetson_emmc_stylesheet_change_ready__signal.emit("background-color: darkgreen")
|
self.jetson_emmc_stylesheet_change_ready__signal.emit("background-color: darkgreen")
|
||||||
|
|
||||||
def __gps_callback(self, data):
|
def __gps_callback(self, data):
|
||||||
self.GPS_msg.UTC_GPS_time = data.UTC_GPS_time
|
self.GPS_msg.UTC_GPS_time = data.UTC_GPS_time
|
||||||
self.GPS_msg.GPS_connection_status = data.GPS_connection_status
|
|
||||||
|
|
||||||
if self.GPS_msg.GPS_connection_status is False:
|
if not data.GPS_connection_status:
|
||||||
# self.gps.setStyleSheet("background-color: darkred")
|
|
||||||
self.gps_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
self.gps_stylesheet_change_ready__signal.emit("background-color: darkred;")
|
||||||
else:
|
else:
|
||||||
# self.gps.setStyleSheet("background-color: darkgreen;")
|
|
||||||
self.gps_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
self.gps_stylesheet_change_ready__signal.emit("background-color: darkgreen;")
|
||||||
|
|
||||||
def __misc_callback(self, data):
|
def __misc_callback(self, data):
|
||||||
@@ -218,12 +211,14 @@ class SensorCore(QtCore.QThread):
|
|||||||
|
|
||||||
def __display_time(self):
|
def __display_time(self):
|
||||||
time = QtCore.QTime.currentTime()
|
time = QtCore.QTime.currentTime()
|
||||||
temp = time.toString('hh:mm:ss')
|
temp = time.toString('hh:mm')
|
||||||
self.clock.display(temp)
|
self.clock.display(temp)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
while self.run_thread_flag:
|
while self.run_thread_flag:
|
||||||
self.msleep(100)
|
self.update_requester.publish(Empty())
|
||||||
|
self.__display_time()
|
||||||
|
self.msleep(1000)
|
||||||
|
|
||||||
def connect_signals_and_slots(self):
|
def connect_signals_and_slots(self):
|
||||||
self.jetson_cpu_update_ready__signal.connect(self.cpu.setText)
|
self.jetson_cpu_update_ready__signal.connect(self.cpu.setText)
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ TICK_TIME = 2**6
|
|||||||
|
|
||||||
|
|
||||||
class Timer(Qt.QMainWindow):
|
class Timer(Qt.QMainWindow):
|
||||||
def __init__(self, parent=None):
|
def __init__(self):
|
||||||
super().__init__(parent)
|
super(Timer, self).__init__()
|
||||||
|
|
||||||
self.reset.clicked.connect(self.do_reset)
|
# self.reset.clicked.connect(self.do_reset)
|
||||||
self.start.clicked.connect(self.do_start)
|
# self.start.clicked.connect(self.do_start)
|
||||||
|
|
||||||
self.timer = Qt.QTimer()
|
self.timer = Qt.QTimer()
|
||||||
self.timer.setInterval(TICK_TIME)
|
self.timer.setInterval(TICK_TIME)
|
||||||
@@ -22,14 +22,8 @@ class Timer(Qt.QMainWindow):
|
|||||||
|
|
||||||
self.do_reset()
|
self.do_reset()
|
||||||
|
|
||||||
def keyPressEvent(self, event):
|
|
||||||
if event.key() == Qt.Qt.Key_Escape:
|
|
||||||
self.close()
|
|
||||||
else:
|
|
||||||
super().keyPressEvent(event)
|
|
||||||
|
|
||||||
def display(self):
|
def display(self):
|
||||||
self.lcd.display("%d:%05.2f" % (self.time // 60, self.time % 60))
|
self.timer.display("%d:%05.2f" % (self.time // 60, self.time % 60))
|
||||||
|
|
||||||
@Qt.pyqtSlot()
|
@Qt.pyqtSlot()
|
||||||
def tick(self):
|
def tick(self):
|
||||||
@@ -39,16 +33,16 @@ class Timer(Qt.QMainWindow):
|
|||||||
@Qt.pyqtSlot()
|
@Qt.pyqtSlot()
|
||||||
def do_start(self):
|
def do_start(self):
|
||||||
self.timer.start()
|
self.timer.start()
|
||||||
self.start.setText("Pause")
|
# self.start.setText("Pause")
|
||||||
self.start.clicked.disconnect()
|
# self.start.clicked.disconnect()
|
||||||
self.start.clicked.connect(self.do_pause)
|
# self.start.clicked.connect(self.do_pause)
|
||||||
|
|
||||||
@Qt.pyqtSlot()
|
@Qt.pyqtSlot()
|
||||||
def do_pause(self):
|
def do_pause(self):
|
||||||
self.timer.stop()
|
self.timer.stop()
|
||||||
self.start.setText("Start")
|
# self.start.setText("Start")
|
||||||
self.start.clicked.disconnect()
|
# self.start.clicked.disconnect()
|
||||||
self.start.clicked.connect(self.do_start)
|
# self.start.clicked.connect(self.do_start)
|
||||||
|
|
||||||
@Qt.pyqtSlot()
|
@Qt.pyqtSlot()
|
||||||
def do_reset(self):
|
def do_reset(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user