本文整理汇总了Python中PyQt4.QtGui.QErrorMessage.showMessage方法的典型用法代码示例。如果您正苦于以下问题:Python QErrorMessage.showMessage方法的具体用法?Python QErrorMessage.showMessage怎么用?Python QErrorMessage.showMessage使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtGui.QErrorMessage
的用法示例。
在下文中一共展示了QErrorMessage.showMessage方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: accept
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
def accept(self):
"""Acepta el dialogo. Coge la operacion con la que esta trabajando
el usuario e inicia el procedimiento de calculo"""
from pyrqt.excepciones import OpcionesIncorrectaException
import rpy
nombre = unicode(self.ui.treeWidget.currentItem().text(0))
widget = self.__widgets["operaciones"][nombre]
try:
resultado = self.__gestoroperaciones[nombre].procedimiento(widget.seleccion(), widget.opciones())
except OpcionesIncorrectaException:
errormessage = QErrorMessage(self)
errormessage.showMessage(u"Las opciones no son correctas")
#except IndexError:
# errormessage = QErrorMessage(self)
# errormessage.showMessage(u"Seleccion incorrecta")
# LOG.exception("excepcion capturada")
except KeyError:
QErrorMessage(self).showMessage(u"Hay elementos de la salida sin definir(o mal definidos) en la operación")
LOG.exception("Excepción Generada por un módulo de operaciones")
except rpy.RException:
QErrorMessage(self).showMessage(u"R devolvio un error")
log.exception("Excepción de RPY")
except AssertionError:
QErrorMessage(self).showMessage(u"Error desconocido")
else:
self.__vsalida.ana_res(resultado) #Añadir a la salida el resultado
self.__vsalida.hide() #TODO averiguar como hacer para que recupere el foco sin ocultar la ventana
self.__vsalida.show()
示例2: input_device_changed
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
def input_device_changed(self, index):
success, index = self.audio_device.select_input_device(index)
self.ui.DeviceList.setCurrentIndex(index)
self.fft_plot.must_plot = True
if not success:
# Note: the error message is a child of the settings dialog, so that
# that dialog remains on top when the error message is closed
error_message = QErrorMessage(self.settings_dialog)
error_message.setWindowTitle("Input device error")
error_message.showMessage("Impossible to use the selected input"
" device, reverting to the previous one")
示例3: second_channel_changed
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
def second_channel_changed(self, index):
self.ui.actionStart.setChecked(False)
success, index = self.audiobackend.select_second_channel(index)
self.settings_dialog.comboBox_secondChannel.setCurrentIndex(index)
if not success:
# Note: the error message is a child of the settings dialog, so that
# that dialog remains on top when the error message is closed
error_message = QErrorMessage(self.settings_dialog)
error_message.setWindowTitle("Input device error")
error_message.showMessage("Impossible to use the selected channel as the second channel, reverting to the previous one")
self.ui.actionStart.setChecked(True)
示例4: Blinkenlights
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
#.........这里部分代码省略.........
self.main.setWindowTitle("Starter Kit: Blinkenlights Demo " + config.DEMO_VERSION)
self.main.show()
def connect(self):
config.UID_LED_STRIP_BRICKLET = None
self.setup.label_led_strip_found.setText('No')
self.setup.label_led_strip_uid.setText('None')
config.UID_MULTI_TOUCH_BRICKLET = None
self.setup.label_multi_touch_found.setText('No')
self.setup.label_multi_touch_uid.setText('None')
config.UID_DUAL_BUTTON_BRICKLET = (None, None)
self.setup.label_dual_button1_found.setText('No')
self.setup.label_dual_button1_uid.setText('None')
self.setup.label_dual_button2_found.setText('No')
self.setup.label_dual_button2_uid.setText('None')
config.UID_PIEZO_SPEAKER_BRICKLET = None
self.setup.label_piezo_speaker_found.setText('No')
self.setup.label_piezo_speaker_uid.setText('None')
config.UID_SEGMENT_DISPLAY_4X7_BRICKLET = None
self.setup.label_segment_display_found.setText('No')
self.setup.label_segment_display_uid.setText('None')
if self.ipcon != None:
try:
self.ipcon.disconnect()
except:
pass
self.ipcon = IPConnection()
host = self.setup.edit_host.text()
port = self.setup.spinbox_port.value()
try:
self.ipcon.connect(host, port)
except Error as e:
self.error_msg.showMessage('Connection Error: ' + str(e.description) + "<br><br>Brickd installed and running?")
return
except socket.error as e:
self.error_msg.showMessage('Socket error: ' + str(e) + "<br><br>Brickd installed and running?")
return
self.ipcon.register_callback(IPConnection.CALLBACK_ENUMERATE,
self.cb_enumerate)
self.ipcon.register_callback(IPConnection.CALLBACK_CONNECTED,
self.cb_connected)
# Wait for a second to give user visual feedback
timer = QTimer(self)
timer.setSingleShot(True)
timer.timeout.connect(self.ipcon.enumerate)
timer.start(250)
def tab_changed_slot(self, tabIndex):
self.active_project.stop()
self.active_project = self.projects[tabIndex]
self.active_project.start()
def cb_enumerate(self, uid, connected_uid, position, hardware_version,
firmware_version, device_identifier, enumeration_type):
if enumeration_type == IPConnection.ENUMERATION_TYPE_CONNECTED or \
enumeration_type == IPConnection.ENUMERATION_TYPE_AVAILABLE:
if device_identifier == LEDStrip.DEVICE_IDENTIFIER:
config.UID_LED_STRIP_BRICKLET = uid
self.setup.label_led_strip_found.setText('Yes')
self.setup.label_led_strip_uid.setText(uid)
elif device_identifier == MultiTouch.DEVICE_IDENTIFIER:
config.UID_MULTI_TOUCH_BRICKLET = uid
self.setup.label_multi_touch_found.setText('Yes')
self.setup.label_multi_touch_uid.setText(uid)
elif device_identifier == DualButton.DEVICE_IDENTIFIER:
if config.UID_DUAL_BUTTON_BRICKLET[0] == None:
config.UID_DUAL_BUTTON_BRICKLET = (uid, None)
self.setup.label_dual_button1_found.setText('Yes')
self.setup.label_dual_button1_uid.setText(uid)
else:
config.UID_DUAL_BUTTON_BRICKLET = (config.UID_DUAL_BUTTON_BRICKLET[0], uid)
self.setup.label_dual_button2_found.setText('Yes')
self.setup.label_dual_button2_uid.setText(uid)
elif device_identifier == PiezoSpeaker.DEVICE_IDENTIFIER:
config.UID_PIEZO_SPEAKER_BRICKLET = uid
self.setup.label_piezo_speaker_found.setText('Yes')
self.setup.label_piezo_speaker_uid.setText(uid)
elif device_identifier == SegmentDisplay4x7.DEVICE_IDENTIFIER:
config.UID_SEGMENT_DISPLAY_4X7_BRICKLET = uid
self.setup.label_segment_display_found.setText('Yes')
self.setup.label_segment_display_uid.setText(uid)
def cb_connected(self, connected_reason):
if connected_reason == IPConnection.CONNECT_REASON_AUTO_RECONNECT:
while True:
try:
self.ipcon.enumerate()
break
except Error as e:
self.error_msg.showMessage('Enumerate Error: ' + str(e.description))
time.sleep(1)
示例5: Editor
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
class Editor(editor_base.EditorBase):
"""Representa el editor de texto que aparece en el panel derecho.
El editor soporta autocompletado de código y resaltado de sintáxis.
"""
# Señal es emitida cuando el Editor ejecuta codigo
signal_ejecutando = QtCore.pyqtSignal()
def __init__(self, main, interpreterLocals, consola_lanas, ventana_interprete):
super(Editor, self).__init__()
self.cantidad_ejecuciones = 0
self.consola_lanas = consola_lanas
self.ventana_interprete = ventana_interprete
self.ruta_del_archivo_actual = None
self.interpreterLocals = interpreterLocals
self.setLineWrapMode(QTextEdit.NoWrap)
self._cambios_sin_guardar = False
self.main = main
self.nombre_de_archivo_sugerido = ""
self.watcher = pilasengine.watcher.Watcher(None, self.cuando_cambia_archivo_de_forma_externa)
def crear_archivo_inicial(self):
dirpath = tempfile.mkdtemp()
archivo_temporal = os.path.join(dirpath, "mi_juego.py")
archivo = codecs.open(archivo_temporal, "w", 'utf-8')
archivo.write(CODIGO_INICIAL)
archivo.close()
#print("Creando el archivo " + str(archivo_temporal))
self.abrir_archivo_del_proyecto(archivo_temporal)
def es_archivo_iniciar_sin_guardar(self):
return self.nombre_de_archivo_sugerido == ""
def crear_y_seleccionar_archivo(self, nombre):
# Quita la extension si llega a tenerla.
nombre = nombre.replace('.py', '')
nombre += ".py"
nombre_de_archivo = nombre
if self.ruta_del_archivo_actual:
base_path = os.path.abspath(os.path.dirname(self.ruta_del_archivo_actual))
ruta = os.path.join(base_path, unicode(nombre_de_archivo))
else:
ruta = unicode(nombre_de_archivo)
if os.path.exists(ruta):
self._tmp_dialog = QErrorMessage(self)
self._tmp_dialog.showMessage("Ya existe un archivo con ese nombre")
else:
self._crear_archivo_nuevo_en(ruta)
self.cargar_contenido_desde_archivo(ruta)
self.ruta_del_archivo_actual = ruta
self.watcher.cambiar_archivo_a_observar(ruta)
self.ejecutar()
self.main.actualizar_el_listado_de_archivos()
def _crear_archivo_nuevo_en(self, ruta):
fo = open(ruta, "wb")
fo.write("# contenido")
fo.close()
def obtener_archivos_del_proyecto(self):
base_path = os.path.dirname(self.nombre_de_archivo_sugerido)
listado = os.listdir(base_path)
return [x for x in listado if x.endswith('.py')]
def keyPressEvent(self, event):
"Atiene el evento de pulsación de tecla."
self._cambios_sin_guardar = True
# Permite usar tab como seleccionador de la palabra actual
# en el popup de autocompletado.
if event.key() in [Qt.Key_Tab]:
if self.completer and self.completer.popup().isVisible():
event.ignore()
nuevo_evento = QKeyEvent(QKeyEvent.KeyPress, Qt.Key_Return, Qt.NoModifier)
try:
if self.autocomplete(nuevo_evento):
return None
except UnicodeEncodeError:
pass
return None
if editor_base.EditorBase.keyPressEvent(self, event):
return None
# Elimina los pares de caracteres especiales si los encuentra
if event.key() == Qt.Key_Backspace:
self._eliminar_pares_de_caracteres()
self._borrar_un_grupo_de_espacios(event)
if self.autocomplete(event):
return None
if event.key() == Qt.Key_Return:
#.........这里部分代码省略.........
示例6: run_gui
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
otherinstance = True
else:
# On windows only singleinstance can be trusted
otherinstance = True if iswindows else False
if not otherinstance and not opts.shutdown_running_calibre:
return run_gui(opts, args, actions, listener, app, gui_debug=gui_debug)
communicate(opts, args)
return 0
if __name__ == '__main__':
try:
sys.exit(main())
except Exception as err:
if not iswindows:
raise
tb = traceback.format_exc()
from PyQt4.QtGui import QErrorMessage
logfile = os.path.join(os.path.expanduser('~'), 'calibre.log')
if os.path.exists(logfile):
log = open(logfile).read().decode('utf-8', 'ignore')
d = QErrorMessage()
d.showMessage(('<b>Error:</b>%s<br><b>Traceback:</b><br>'
'%s<b>Log:</b><br>%s')%(unicode(err),
unicode(tb).replace('\n', '<br>'),
log.replace('\n', '<br>')))
示例7: correct
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
except socket.error: # Good si is correct (on UNIX)
otherinstance = True
else:
# On windows only singleinstance can be trusted
otherinstance = True if iswindows else False
if not otherinstance and not opts.shutdown_running_calibre:
return run_gui(opts, args, listener, app, gui_debug=gui_debug)
communicate(opts, args)
return 0
if __name__ == "__main__":
try:
sys.exit(main())
except Exception as err:
if not iswindows:
raise
tb = traceback.format_exc()
from PyQt4.QtGui import QErrorMessage
logfile = os.path.join(os.path.expanduser("~"), "calibre.log")
if os.path.exists(logfile):
log = open(logfile).read().decode("utf-8", "ignore")
d = QErrorMessage()
d.showMessage(
("<b>Error:</b>%s<br><b>Traceback:</b><br>" "%s<b>Log:</b><br>%s")
% (unicode(err), unicode(tb).replace("\n", "<br>"), log.replace("\n", "<br>"))
)
示例8: Servo
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
#.........这里部分代码省略.........
def velocity_slider_released(self):
value = self.velocity_slider.value()
self.velocity_spin.setValue(value)
try:
self.servo.set_velocity(self.selected_servo(), value)
except ip_connection.Error:
return
def velocity_spin_finished(self):
value = self.velocity_spin.value()
self.velocity_slider.setValue(value)
try:
self.servo.set_velocity(self.selected_servo(), value)
except ip_connection.Error:
return
def acceleration_slider_released(self):
value = self.acceleration_slider.value()
self.acceleration_spin.setValue(value)
try:
self.servo.set_acceleration(self.selected_servo(), value)
except ip_connection.Error:
return
def acceleration_spin_finished(self):
value = self.acceleration_spin.value()
self.acceleration_slider.setValue(value)
try:
self.servo.set_acceleration(self.selected_servo(), value)
except ip_connection.Error:
return
def period_slider_released(self):
value = self.period_slider.value()
self.period_spin.setValue(value)
try:
self.servo.set_period(self.selected_servo(), value)
except ip_connection.Error:
return
def period_spin_finished(self):
value = self.period_spin.value()
self.period_slider.setValue(value)
try:
self.servo.set_period(self.selected_servo(), value)
except ip_connection.Error:
return
def pulse_width_spin_finished(self):
try:
self.servo.set_pulse_width(self.selected_servo(),
self.pulse_width_min_spin.value(),
self.pulse_width_max_spin.value())
except ip_connection.Error:
return
def degree_spin_finished(self):
min = self.degree_min_spin.value()
max = self.degree_max_spin.value()
servo = self.selected_servo()
self.position_slider.setMinimum(min)
self.position_slider.setMaximum(max)
self.position_spin.setMinimum(min)
self.position_spin.setMaximum(max)
self.position_list[servo].setTotalAngle((max - min)/100)
self.position_list[servo].setRange(min/100, max/100)
try:
self.servo.set_degree(servo, min, max)
except ip_connection.Error:
return
def cb_under_voltage(self, ov):
mv_str = self.minimum_voltage_label.text()
ov_str = "%gV" % round(ov/1000.0, 1)
if not self.qem.isVisible():
self.qem.showMessage("Under Voltage: Output Voltage of " + ov_str +
" is below minimum voltage of " + mv_str)
def minimum_voltage_selected(self, value):
try:
self.servo.set_minimum_voltage(value)
except ip_connection.Error:
return
def minimum_voltage_button_pressed(self):
qid = QInputDialog(self)
qid.setInputMode(QInputDialog.IntInput)
qid.setIntMinimum(5000)
qid.setIntMaximum(0xFFFF)
qid.setIntStep(100)
try:
qid.setIntValue(self.servo.get_minimum_voltage())
except ip_connection.Error:
return
qid.intValueSelected.connect(self.minimum_voltage_selected)
qid.setLabelText("Choose minimum servo voltage in mV.")
qid.open()
示例9: DC
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
#.........这里部分代码省略.........
# self.enable_encoder_checkbox.setText('Enable Encoder (Firmware >= 2.01 required)')
# self.enable_encoder_checkbox.setEnabled(False)
def start(self):
self.update_timer.start(1000)
async_call(self.dc.set_current_velocity_period, 100, None, self.increase_error_count)
self.update_start()
self.update_data()
def stop(self):
self.update_timer.stop()
async_call(self.dc.set_current_velocity_period, 0, None, self.increase_error_count)
def has_reset_device(self):
return self.version >= (1, 1, 3)
def reset_device(self):
if self.has_reset_device():
self.dc.reset()
def is_brick(self):
return True
def get_url_part(self):
return 'dc'
@staticmethod
def has_device_identifier(device_identifier):
return device_identifier == BrickDC.DEVICE_IDENTIFIER
def cb_emergency_shutdown(self):
if not self.qem.isVisible():
self.qem.setWindowTitle("Emergency Shutdown")
self.qem.showMessage("Emergency Shutdown: Short-Circuit or Over-Temperature")
def cb_under_voltage(self, ov):
mv_str = self.minimum_voltage_label.text()
ov_str = "%gV" % round(ov/1000.0, 1)
if not self.qem.isVisible():
self.qem.setWindowTitle("Under Voltage")
self.qem.showMessage("Under Voltage: Output Voltage of " + ov_str +
" is below minimum voltage of " + mv_str,
"DC_UnderVoltage")
def encoder_hide_all(self):
self.enable_encoder_checkbox.hide()
self.encoder_hide()
def encoder_hide(self):
self.p_label.hide()
self.p_spinbox.hide()
self.i_label.hide()
self.i_spinbox.hide()
self.d_label.hide()
self.d_spinbox.hide()
self.st_label.hide()
self.st_spinbox.hide()
self.cpr_label.hide()
self.cpr_spinbox.hide()
self.encoder_spacer.hide()
def encoder_show(self):
self.p_label.show()
self.p_spinbox.show()
self.i_label.show()
self.i_spinbox.show()
示例10: MainWindow
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
#.........这里部分代码省略.........
"""Slot for toggling the logger window.
:param show: a boolean value indicating whether the statusbar
should be shown or not.
:type show: bool
"""
if show:
self.statusBar.show()
else:
self.statusBar.hide()
@pyqtSlot(bool)
def toggleFullscreen(self, fullscreen):
"""Slot for toggling the logger window.
:param fullscreen: a boolean value indicating whether to enter
fullscreenmode or not.
:type fullcreen: bool
"""
if fullscreen:
self.__tmpWinSize = self.size()
self.showFullScreen()
else:
self.showNormal()
self.resize(self.__tmpWinSize)
def showServerEditor(self):
"""Slot to display the server editor dialog.
"""
serverEditor = ServerDialog()
r = serverEditor.exec_()
if r:
#TODO -- only display if plugins open:
self.serversChangedMessage.showMessage(QApplication.translate(
"MainWindow",
"You may need to restart plugins for changes to take effect."))
def showTempPasswordDialog(self):
""" Sets overridePassword for a server.
Using this one doesn't actually have to enter the password
in the ServerDialog (and by extension save to disk).
"""
serverList = ServerList()
# Create a stringlist to be used by the qinputdialog
stringList = []
for server in serverList.getTable():
stringList.append(server.name)
# Display list of servers
(serverString, ok) = QInputDialog.getItem(
self,
QApplication.translate("MainWindow", "Select server"),
QApplication.translate("MainWindow", "Server:"),
stringList,
editable=False
)
if ok:
server = serverList.getServerObjectByName(serverString)
if server != None:
# Ask for password
(value, ok) = QInputDialog.getText(
self,
QApplication.translate("MainWindow", "Temporary password"),
QApplication.translate("MainWindow", "Enter password:"),
QLineEdit.Password
示例11: ProjectXively
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
#.........这里部分代码省略.........
layout2.addLayout(layout4)
layout2.addStretch()
self.setLayout(layout1)
self.qtcb_update_illuminance.connect(self.update_illuminance_data_slot)
self.qtcb_update_air_pressure.connect(self.update_air_pressure_data_slot)
self.qtcb_update_temperature.connect(self.update_temperature_data_slot)
self.qtcb_update_humidity.connect(self.update_humidity_data_slot)
self.qtcb_button_pressed.connect(self.button_pressed_slot)
self.save_button.clicked.connect(self.save_configuration)
self.lcdwidget.clear(self)
self.error_message = QErrorMessage(self)
def set_active_label(self, value):
palette = self.label_upload_active.palette()
if value:
palette.setColor(self.foregroundRole(), Qt.darkGreen)
self.label_upload_active.setText("Active")
else:
palette.setColor(self.foregroundRole(), Qt.red)
self.label_upload_active.setText("Not Active")
self.label_upload_active.setPalette(palette)
def save_configuration(self):
try:
self.xively_agent = str(self.text_agent.text()).decode('ascii')
self.xively_channel = str(self.text_channel.text()).decode('ascii')
self.xively_api_key = str(self.text_api_key.text()).decode('ascii')
except:
self.error_message.showMessage('Agent, Feed and API Key can only contain ASCII characters')
return
self.xively_update_rate = self.number_update_rate.value()
self.xively_headers = {
"Content-Type" : "application/x-www-form-urlencoded",
"X-ApiKey" : self.xively_api_key,
"User-Agent" : self.xively_agent,
}
self.xively_params = "/v2/feeds/" + self.xively_channel
if self.xively_timer is None:
self.xively_timer = QTimer(self)
self.xively_timer.timeout.connect(self.update_xively)
self.xively_timer.start(self.xively_update_rate*60*1000)
self.set_active_label(True)
self.update_xively()
def write_lcd(self):
if self.last_upload == None:
tmp = "Last: Never"
else:
tmp = "Last: " + self.last_upload
self.lcdwidget.write_line(0, 0, "Xively Upload", self)
self.lcdwidget.write_line(2, 0, tmp, self)
def update_xively(self):
if len(self.xively_items) == 0:
return
示例12: DC
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
class DC(PluginBase, Ui_DC):
qtcb_position_reached = pyqtSignal(int)
qtcb_under_voltage = pyqtSignal(int)
qtcb_emergency_shutdown = pyqtSignal()
def __init__ (self, ipcon, uid):
PluginBase.__init__(self, ipcon, uid)
self.setupUi(self)
self.dc = brick_dc.DC(self.uid)
self.device = self.dc
self.ipcon.add_device(self.dc)
self.version = '.'.join(map(str, self.dc.get_version()[1]))
self.update_timer = QTimer()
self.update_timer.timeout.connect(self.update_data)
self.speedometer = SpeedoMeter()
self.vertical_layout_right.insertWidget(4, self.speedometer)
self.new_value = 0
self.update_counter = 0
self.full_brake_time = 0
self.velocity_slider.sliderReleased.connect(self.velocity_slider_released)
self.velocity_slider.valueChanged.connect(self.velocity_spin.setValue)
self.velocity_spin.editingFinished.connect(self.velocity_spin_finished)
self.acceleration_slider.sliderReleased.connect(self.acceleration_slider_released)
self.acceleration_slider.valueChanged.connect(self.acceleration_spin.setValue)
self.acceleration_spin.editingFinished.connect(self.acceleration_spin_finished)
self.frequency_slider.sliderReleased.connect(self.frequency_slider_released)
self.frequency_slider.valueChanged.connect(self.frequency_spin.setValue)
self.frequency_spin.editingFinished.connect(self.frequency_spin_finished)
self.radio_mode_brake.toggled.connect(self.brake_value_changed)
self.radio_mode_coast.toggled.connect(self.coast_value_changed)
self.minimum_voltage_button.pressed.connect(self.minimum_voltage_button_pressed)
self.full_brake_button.pressed.connect(self.full_brake_pressed)
self.enable_checkbox.stateChanged.connect(self.enable_state_changed)
self.emergency_signal = None
self.under_signal = None
self.current_velocity_signal = None
self.velocity_reached_signal = None
self.qem = QErrorMessage(self)
self.qtcb_under_voltage.connect(self.cb_under_voltage)
self.dc.register_callback(self.dc.CALLBACK_UNDER_VOLTAGE,
self.qtcb_under_voltage.emit)
self.qtcb_emergency_shutdown.connect(self.cb_emergency_shutdown)
self.dc.register_callback(self.dc.CALLBACK_EMERGENCY_SHUTDOWN,
self.qtcb_emergency_shutdown.emit)
self.qtcb_position_reached.connect(self.update_velocity)
self.dc.register_callback(self.dc.CALLBACK_VELOCITY_REACHED,
self.qtcb_position_reached.emit)
self.dc.register_callback(self.dc.CALLBACK_CURRENT_VELOCITY,
self.qtcb_position_reached.emit)
def start(self):
self.update_timer.start(1000)
try:
self.dc.set_current_velocity_period(100)
self.update_start()
self.update_data()
except ip_connection.Error:
return
def stop(self):
self.update_timer.stop()
try:
self.dc.set_current_velocity_period(0)
except ip_connection.Error:
return
@staticmethod
def has_name(name):
return 'DC Brick' in name
def cb_emergency_shutdown(self):
if not self.qem.isVisible():
self.qem.setWindowTitle("Emergency Shutdown")
self.qem.showMessage("Emergency Shutdown: Short-Circuit or Over-Temperature")
def cb_under_voltage(self, ov):
mv_str = self.minimum_voltage_label.text()
ov_str = "%gV" % round(ov/1000.0, 1)
if not self.qem.isVisible():
self.qem.setWindowTitle("Under Voltage")
self.qem.showMessage("Under Voltage: Output Voltage of " + ov_str +
" is below minimum voltage of " + mv_str)
#.........这里部分代码省略.........
示例13: Stepper
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
#.........这里部分代码省略.........
async_call(self.stepper.get_motor_current, None, qid.setIntValue, self.increase_error_count)
qid.intValueSelected.connect(self.motor_current_selected)
qid.setLabelText("Choose motor current in mA.")
# "<font color=red>Setting this too high can destroy your Motor.</font>")
qid.open()
def minimum_motor_voltage_button_clicked(self):
qid = QInputDialog(self)
qid.setInputMode(QInputDialog.IntInput)
qid.setIntMinimum(0)
qid.setIntMaximum(40000)
qid.setIntStep(100)
async_call(self.stepper.get_minimum_voltage, None, qid.setIntValue, self.increase_error_count)
qid.intValueSelected.connect(self.minimum_motor_voltage_selected)
qid.setLabelText("Choose minimum motor voltage in mV.")
qid.open()
def motor_current_selected(self, value):
try:
self.stepper.set_motor_current(value)
except ip_connection.Error:
return
def minimum_motor_voltage_selected(self, value):
try:
self.stepper.set_minimum_voltage(value)
except ip_connection.Error:
return
def cb_under_voltage(self, ov):
mv_str = self.minimum_voltage_label.text()
ov_str = "%gV" % round(ov/1000.0, 1)
if not self.qem.isVisible():
self.qem.showMessage("Under Voltage: Output Voltage of " + ov_str +
" is below minimum voltage of " + mv_str,
"Stepper_UnderVoltage")
def enable_toggled(self, checked):
try:
if checked:
if not self.stepper.is_enabled():
self.endis_all(True)
self.stepper.enable()
else:
if self.stepper.is_enabled():
self.endis_all(False)
self.stepper.disable()
except ip_connection.Error:
return
def sync_rect_toggled(self, checked):
if not self.setting_sync_rect_checkbox and checked:
rc = QMessageBox.warning(get_main_window(), 'Synchronous Rectification',
'If you want to use high speeds (> 10000 steps/s) for a large stepper motor with a ' +
'large inductivity we strongly suggest that you do not enable synchronous rectification. ' +
'Otherwise the Brick may not be able to cope with the load and overheat.',
QMessageBox.Ok | QMessageBox.Cancel)
if rc != QMessageBox.Ok:
self.sync_rect_checkbox.setChecked(False)
return
try:
self.stepper.set_sync_rect(checked)
except ip_connection.Error:
return
示例14: Stepper
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
#.........这里部分代码省略.........
async_call(self.stepper.get_motor_current, None, qid.setIntValue, self.increase_error_count)
qid.intValueSelected.connect(self.motor_current_selected)
qid.setLabelText("Choose motor current in mA.")
# "<font color=red>Setting this too high can destroy your Motor.</font>")
qid.open()
def minimum_motor_voltage_button_pressed(self):
qid = QInputDialog(self)
qid.setInputMode(QInputDialog.IntInput)
qid.setIntMinimum(0)
qid.setIntMaximum(40000)
qid.setIntStep(100)
async_call(self.stepper.get_minimum_voltage, None, qid.setIntValue, self.increase_error_count)
qid.intValueSelected.connect(self.minimum_motor_voltage_selected)
qid.setLabelText("Choose minimum motor voltage in mV.")
qid.open()
def motor_current_selected(self, value):
try:
self.stepper.set_motor_current(value)
except ip_connection.Error:
return
def minimum_motor_voltage_selected(self, value):
try:
self.stepper.set_minimum_voltage(value)
except ip_connection.Error:
return
def cb_under_voltage(self, ov):
mv_str = self.minimum_voltage_label.text()
ov_str = "%gV" % round(ov/1000.0, 1)
if not self.qem.isVisible():
self.qem.showMessage("Under Voltage: Output Voltage of " + ov_str +
" is below minimum voltage of " + mv_str,
"Stepper_UnderVoltage")
def enable_state_changed(self, state):
try:
if state == Qt.Checked:
self.endis_all(True)
self.stepper.enable()
elif state == Qt.Unchecked:
self.endis_all(False)
self.stepper.disable()
except ip_connection.Error:
return
def stack_input_voltage_update(self, sv):
sv_str = "%gV" % round(sv/1000.0, 1)
self.stack_voltage_label.setText(sv_str)
def external_input_voltage_update(self, ev):
ev_str = "%gV" % round(ev/1000.0, 1)
self.external_voltage_label.setText(ev_str)
def minimum_voltage_update(self, mv):
mv_str = "%gV" % round(mv/1000.0, 1)
self.minimum_voltage_label.setText(mv_str)
def maximum_current_update(self, cur):
cur_str = "%gA" % round(cur/1000.0, 1)
self.maximum_current_label.setText(cur_str)
def position_update(self, pos):
pos_str = "%d" % pos
示例15: WeatherStation
# 需要导入模块: from PyQt4.QtGui import QErrorMessage [as 别名]
# 或者: from PyQt4.QtGui.QErrorMessage import showMessage [as 别名]
class WeatherStation(QApplication):
HOST = "localhost"
PORT = 4223
ipcon = None
lcd = None
al = None
hum = None
baro = None
projects = []
active_project = None
error_msg = None
def __init__(self, args):
super(QApplication, self).__init__(args)
self.error_msg = QErrorMessage()
self.ipcon = IPConnection()
signal.signal(signal.SIGINT, self.exit_demo)
signal.signal(signal.SIGTERM, self.exit_demo)
timer = QTimer(self)
timer.setSingleShot(True)
timer.timeout.connect(self.connect)
timer.start(1)
def exit_demo(self, signl=None, frme=None):
try:
self.ipcon.disconnect()
self.timer.stop()
self.tabs.destroy()
except:
pass
sys.exit()
def open_gui(self):
self.main = MainWindow(self)
self.main.setFixedSize(730, 430)
self.main.setWindowIcon(QIcon(os.path.join(ProgramPath.program_path(), "demo-icon.png")))
self.tabs = QTabWidget()
widget = QWidget()
layout = QVBoxLayout()
layout.addWidget(self.tabs)
widget.setLayout(layout)
self.main.setCentralWidget(widget)
self.projects.append(ProjectEnvDisplay(self.tabs, self))
self.projects.append(ProjectStatistics(self.tabs, self))
self.projects.append(ProjectXively(self.tabs, self))
self.tabs.addTab(self.projects[0], "Display Environment Measurements")
self.tabs.addTab(self.projects[1], "Show Statistics with Button Control")
self.tabs.addTab(self.projects[2], "Connect to Xively")
self.active_project = self.projects[0]
self.tabs.currentChanged.connect(self.tabChangedSlot)
self.main.setWindowTitle("Starter Kit: Weather Station Demo " + config.DEMO_VERSION)
self.main.show()
def connect(self):
try:
self.ipcon.connect(WeatherStation.HOST, WeatherStation.PORT)
except Error as e:
self.error_msg.showMessage('Connection Error: ' + str(e.description) + "\nBrickd installed and running?")
return
except socket.error as e:
self.error_msg.showMessage('Socket error: ' + str(e) + "\nBrickd installed and running?")
return
self.ipcon.register_callback(IPConnection.CALLBACK_ENUMERATE,
self.cb_enumerate)
self.ipcon.register_callback(IPConnection.CALLBACK_CONNECTED,
self.cb_connected)
try:
self.ipcon.enumerate()
except Error as e:
self.error_msg.showMessage('Enumerate Error: ' + str(e.description))
return
self.open_gui()
def tabChangedSlot(self, tabIndex):
if self.lcd is not None:
self.lcd.clear_display()
self.active_project = self.projects[tabIndex]
def cb_illuminance(self, illuminance):
for p in self.projects:
#.........这里部分代码省略.........