本文整理汇总了Python中python_qt_binding.QtGui.QPushButton.setEnabled方法的典型用法代码示例。如果您正苦于以下问题:Python QPushButton.setEnabled方法的具体用法?Python QPushButton.setEnabled怎么用?Python QPushButton.setEnabled使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类python_qt_binding.QtGui.QPushButton
的用法示例。
在下文中一共展示了QPushButton.setEnabled方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TextSearchFrame
# 需要导入模块: from python_qt_binding.QtGui import QPushButton [as 别名]
# 或者: from python_qt_binding.QtGui.QPushButton import setEnabled [as 别名]
#.........这里部分代码省略.........
def keyPressEvent(self, event):
'''
Enable the shortcats for search and replace
'''
self.parent().keyPressEvent(event)
def on_search(self):
'''
Initiate the new search or request a next search result.
'''
if self.current_search_text != self.search_field.text() or self._search_recursive != self.recursive_search_box.isChecked():
# clear current search results
self._reset()
self.current_search_text = self.search_field.text()
if self.current_search_text:
path_text = {}
self._wait_for_result = True
for i in range(self._tabwidget.count()):
path_text[self._tabwidget.widget(i).filename] = self._tabwidget.widget(i).document().toPlainText()
self._search_recursive = self.recursive_search_box.isChecked()
self._search_thread = TextSearchThread(self.current_search_text, self._tabwidget.currentWidget().filename, path_text=path_text, recursive=self._search_recursive)
self._search_thread.search_result_signal.connect(self.on_search_result)
self._search_thread.warning_signal.connect(self.on_warning_result)
self._search_thread.start()
elif self.search_results:
self._check_position()
if self.search_results:
if self._search_result_index + 1 >= len(self.search_results):
self._search_result_index = -1
self._search_result_index += 1
(id, search_text, found, path, index, linenr, line) = self.search_results[self._search_result_index]
self.search_result_signal.emit(search_text, found, path, index)
self.replace_button.setEnabled(True)
self._update_label()
def on_search_back(self):
'''
Slot to handle the search back function.
'''
self._check_position(False)
if self.search_results:
self._search_result_index -= 1
if self._search_result_index < 0:
self._search_result_index = len(self.search_results) - 1
self._update_label()
(id, search_text, found, path, index, linenr, line) = self.search_results[self._search_result_index]
self.search_result_signal.emit(search_text, found, path, index)
self.replace_button.setEnabled(True)
def _check_position(self, forward=True):
try:
# if the position of the textCursor was changed by the user, move the search index
cur_pos = self._tabwidget.currentWidget().textCursor().position()
id, st, _f, pa, idx, lnr, ltxt = self.search_results[self._search_result_index]
sear_pos = idx + len(st)
if cur_pos != sear_pos:
first_idx = self._get_current_index_for_current_file()
if first_idx != -1:
id, st, _f, pa, idx, lnr, ltxt = self.search_results[first_idx]
sear_pos = idx + len(st)
while cur_pos > sear_pos and self._tabwidget.currentWidget().filename == pa:
first_idx += 1
id, st, _f, pa, idx, lnr, ltxt = self.search_results[first_idx]
sear_pos = idx + len(st)
self._search_result_index = first_idx
示例2: QExecuteStepPlanWidget
# 需要导入模块: from python_qt_binding.QtGui import QPushButton [as 别名]
# 或者: from python_qt_binding.QtGui.QPushButton import setEnabled [as 别名]
class QExecuteStepPlanWidget(QWidgetWithLogger):
step_plan_sub = None
execute_step_plan_client = None
step_plan = None
def __init__(self, parent = None, logger = Logger(), step_plan_topic = str()):
QWidgetWithLogger.__init__(self, parent, logger)
# start widget
vbox = QVBoxLayout()
vbox.setMargin(0)
vbox.setContentsMargins(0, 0, 0, 0)
# step plan input topic selection
if len(step_plan_topic) == 0:
step_plan_topic_widget = QTopicWidget(topic_type = 'vigir_footstep_planning_msgs/StepPlan')
step_plan_topic_widget.topic_changed_signal.connect(self._init_step_plan_subscriber)
vbox.addWidget(step_plan_topic_widget)
else:
self._init_step_plan_subscriber(step_plan_topic)
# execute action server topic selection
execute_topic_widget = QTopicWidget(topic_type = 'vigir_footstep_planning_msgs/ExecuteStepPlanAction', is_action_topic = True)
execute_topic_widget.topic_changed_signal.connect(self._init_execute_action_client)
vbox.addWidget(execute_topic_widget)
# start button part
buttons_hbox = QHBoxLayout()
buttons_hbox.setMargin(0)
# execute
self.execute_command = QPushButton("Execute (Steps: 0)")
self.execute_command.clicked.connect(self.execute_command_callback)
self.execute_command.setEnabled(False)
buttons_hbox.addWidget(self.execute_command)
# repeat
self.repeat_command = QPushButton("Repeat")
self.repeat_command.clicked.connect(self.execute_command_callback)
self.repeat_command.setEnabled(False)
buttons_hbox.addWidget(self.repeat_command)
# stop
self.stop_command = QPushButton("Stop")
self.stop_command.clicked.connect(self.stop_command_callback)
self.stop_command.setEnabled(False)
buttons_hbox.addWidget(self.stop_command)
# end button part
vbox.addLayout(buttons_hbox)
# end widget
self.setLayout(vbox)
# init widget
if len(step_plan_topic) == 0:
step_plan_topic_widget.emit_topic_name()
execute_topic_widget.emit_topic_name()
def shutdown_plugin(self):
print "Shutting down ..."
if self.step_plan_sub is None:
self.step_plan_sub.unregister()
print "Done!"
def _init_step_plan_subscriber(self, topic_name):
if len(topic_name) > 0:
if self.step_plan_sub is not None:
self.step_plan_sub.unregister()
self.step_plan_sub = rospy.Subscriber(topic_name, StepPlan, self.step_plan_callback)
print "Step Plan topic changed: " + topic_name
def _init_execute_action_client(self, topic_name):
if len(topic_name) > 0:
self.execute_step_plan_client = actionlib.SimpleActionClient(topic_name, ExecuteStepPlanAction)
self.execute_command.setEnabled(self.step_plan is not None)
self.repeat_command.setEnabled(False)
self.stop_command.setEnabled(False)
print "Execution topic changed: " + topic_name
def step_plan_callback(self, step_plan):
self.step_plan = step_plan
self.execute_command.setText("Execute (Steps: " + str(len(step_plan.steps)) + ")")
if len(step_plan.steps) > 0:
self.execute_command.setEnabled(self.execute_step_plan_client is not None)
self.repeat_command.setEnabled(False)
def execute_command_callback(self):
if (self.execute_step_plan_client.wait_for_server(rospy.Duration(0.5))):
self.execute_command.setEnabled(False)
self.repeat_command.setEnabled(True)
self.stop_command.setEnabled(True)
self.logger.log_info("Executing footstep plan...")
goal = ExecuteStepPlanGoal()
goal.step_plan = self.step_plan
self.execute_step_plan_client.send_goal(goal)
else:
self.logger.log_error("Can't connect to footstep controller action server!")
#.........这里部分代码省略.........
示例3: QParameterSetSelectionWidget
# 需要导入模块: from python_qt_binding.QtGui import QPushButton [as 别名]
# 或者: from python_qt_binding.QtGui.QPushButton import setEnabled [as 别名]
class QParameterSetSelectionWidget(QWidgetWithLogger):
NO_PARAM_SET_TEXT = "No parameters available!"
SELECT_TEXT = "<Select>"
param_cleared_signal = Signal()
param_changed_signal = Signal(str)
def __init__(self, parent = None, logger = Logger()):
QWidgetWithLogger.__init__(self, parent, logger)
# start widget
hbox = QHBoxLayout()
hbox.setMargin(0)
hbox.setContentsMargins(0, 0, 0, 0)
# get system icon
icon = QIcon.fromTheme("view-refresh")
size = icon.actualSize(QSize(32, 32))
# add combo box
self.parameter_set_names_combo_box = QComboBox()
self.parameter_set_names_combo_box.currentIndexChanged[str].connect(self.param_changed)
hbox.addWidget(self.parameter_set_names_combo_box)
# add refresh button
self.get_all_parameter_set_names_button = QPushButton()
self.get_all_parameter_set_names_button.clicked.connect(self._get_all_parameter_set_names)
self.get_all_parameter_set_names_button.setIcon(icon)
self.get_all_parameter_set_names_button.setFixedSize(size.width()+2, size.height()+2)
hbox.addWidget(self.get_all_parameter_set_names_button)
# end widget
self.setLayout(hbox)
# init widget
self.reset_parameter_set_selection()
def _init_action_client(self, topic_name):
self.get_parameter_set_names_client = actionlib.SimpleActionClient(topic_name, GetParameterSetNamesAction)
print "Parameter set topic changed: " + topic_name
@Slot(str)
def set_topic_name(self, topic_name):
if (len(topic_name) > 0):
self._init_action_client(topic_name)
self._get_all_parameter_set_names()
else:
self.reset_parameter_set_selection()
def reset_parameter_set_selection(self):
self.parameter_set_names_combo_box.setEnabled(False)
self.parameter_set_names_combo_box.blockSignals(True)
self.parameter_set_names_combo_box.clear()
self.parameter_set_names_combo_box.addItem(self.NO_PARAM_SET_TEXT)
self.get_all_parameter_set_names_button.setEnabled(False)
self.param_cleared_signal.emit()
def current_parameter_set_name(self):
if self.parameter_set_names_combo_box.currentText() == self.NO_PARAM_SET_TEXT:
return str()
else:
return self.parameter_set_names_combo_box.currentText()
@Slot(str)
def param_changed(self, name):
self.param_changed_signal.emit(name)
# parameter set names handler
def _get_all_parameter_set_names(self):
if (self.get_parameter_set_names_client.wait_for_server(rospy.Duration(0.5))):
self.logger.log_info("Requesting current list of parameter set names.")
goal = GetParameterSetNamesGoal()
self.get_parameter_set_names_client.send_goal(goal)
# waiting for getting list of parameter set names
if (self.get_parameter_set_names_client.wait_for_result(rospy.Duration(1.0))):
result = self.get_parameter_set_names_client.get_result()
self.logger.log_info("Received " + str(len(result.names)) + " parameter set names.")
self.parameter_set_names_combo_box.blockSignals(True)
self.parameter_set_names_combo_box.clear()
self.parameter_set_names_combo_box.addItem(self.SELECT_TEXT)
self.parameter_set_names_combo_box.setItemData(0, 0, Qt.UserRole-1)
self.param_cleared_signal.emit()
for name in result.names:
self.parameter_set_names_combo_box.addItem(name.data)
self.parameter_set_names_combo_box.setEnabled(True)
self.parameter_set_names_combo_box.blockSignals(False)
self.get_all_parameter_set_names_button.setEnabled(True)
else:
self.logger.log_error("Didn't received any results. Check communcation!")
self.reset_parameter_set_selection()
else:
self.logger.log_error("Can't connect to footstep planner parameter action server!")
#.........这里部分代码省略.........
示例4: TopicSelection
# 需要导入模块: from python_qt_binding.QtGui import QPushButton [as 别名]
# 或者: from python_qt_binding.QtGui.QPushButton import setEnabled [as 别名]
class TopicSelection(QWidget):
recordSettingsSelected = Signal(bool, list)
def __init__(self):
super(TopicSelection, self).__init__()
master = rosgraph.Master('rqt_bag_recorder')
self.setWindowTitle("Select the topics you want to record")
self.resize(500, 700)
self.topic_list = []
self.selected_topics = []
self.items_list = []
self.area = QScrollArea(self)
self.main_widget = QWidget(self.area)
self.ok_button = QPushButton("Record", self)
self.ok_button.clicked.connect(self.onButtonClicked)
self.ok_button.setEnabled(False)
self.main_vlayout = QVBoxLayout(self)
self.main_vlayout.addWidget(self.area)
self.main_vlayout.addWidget(self.ok_button)
self.setLayout(self.main_vlayout)
self.selection_vlayout = QVBoxLayout(self)
self.item_all = QCheckBox("All", self)
self.item_all.stateChanged.connect(self.updateList)
self.selection_vlayout.addWidget(self.item_all)
topic_data_list = master.getPublishedTopics('')
topic_data_list.sort()
for topic, datatype in topic_data_list:
self.addCheckBox(topic)
self.main_widget.setLayout(self.selection_vlayout)
self.area.setWidget(self.main_widget)
self.show()
def addCheckBox(self, topic):
self.topic_list.append(topic)
item = QCheckBox(topic, self)
item.stateChanged.connect(lambda x: self.updateList(x,topic))
self.items_list.append(item)
self.selection_vlayout.addWidget(item)
def updateList(self, state, topic = None):
if topic is None: # The "All" checkbox was checked / unchecked
if state == Qt.Checked:
self.item_all.setTristate(False)
for item in self.items_list:
if item.checkState() == Qt.Unchecked:
item.setCheckState(Qt.Checked)
elif state == Qt.Unchecked:
self.item_all.setTristate(False)
for item in self.items_list:
if item.checkState() == Qt.Checked:
item.setCheckState(Qt.Unchecked)
else:
if state == Qt.Checked:
self.selected_topics.append(topic)
else:
self.selected_topics.remove(topic)
if self.item_all.checkState()==Qt.Checked:
self.item_all.setCheckState(Qt.PartiallyChecked)
if self.selected_topics == []:
self.ok_button.setEnabled(False)
else:
self.ok_button.setEnabled(True)
def onButtonClicked(self):
self.close()
self.recordSettingsSelected.emit((self.item_all.checkState() == Qt.Checked), self.selected_topics)
示例5: LocationFunction
# 需要导入模块: from python_qt_binding.QtGui import QPushButton [as 别名]
# 或者: from python_qt_binding.QtGui.QPushButton import setEnabled [as 别名]
#.........这里部分代码省略.........
stream = open(self.location_file, 'w')
yaml.dump(out_dict, stream)
stream.close()
self.is_modified = False
def deactivateFunction(self):
if self.editing_area:
self.endAreaEdit("Cancel")
elif self.editing_properties:
self.endPropertyEdit()
clearLayoutAndFixHeight(self.subfunction_layout)
self.edit_area_button.clear()
self.image.enableDefaultMouseHooks()
# Just in case we were editing a location, that location was not being drawn.
for location in self.draw_location:
self.draw_location[location] = True
def activateFunction(self):
# Add all the necessary buttons to the subfunction layout.
clearLayoutAndFixHeight(self.subfunction_layout)
for button_text in [LocationFunction.ADD_LOCATION_AREA,
LocationFunction.EDIT_EXISTING_AREA]:
button = QPushButton(button_text, self.widget)
button.clicked[bool].connect(partial(self.startAreaEdit, button_text))
button.setCheckable(True)
self.subfunction_layout.addWidget(button)
self.edit_area_button[button_text] = button
self.edit_area_button[LocationFunction.EDIT_EXISTING_AREA].setEnabled(False)
self.subfunction_layout.addStretch(1)
# ActivateMouseHooks.
self.image.mousePressEvent = self.mousePressEvent
self.image.mouseMoveEvent = self.mouseMoveEvent
self.image.mouseReleaseEvent = self.mouseReleaseEvent
self.updateOverlay()
def getLocationNameFromPoint(self, point):
for location in self.locations:
if self.locations[location].containsPoint(point, Qt.OddEvenFill):
return location
return None
def startAreaEdit(self, edit_type):
if self.editing_properties:
self.endPropertyEdit()
self.editing_area = True
if edit_type == LocationFunction.ADD_LOCATION_AREA:
self.edit_existing_location = None
# else edit_existing_location was set to the correct location by startPropertyEdit()
# Make sure all active selections have been cleared.
self.clearAreaSelection()
# If we're going to edit an existing area, stop drawing it and copy it to the active selection.
if self.edit_existing_location is not None:
self.draw_location[self.edit_existing_location] = False
示例6: Editor
# 需要导入模块: from python_qt_binding.QtGui import QPushButton [as 别名]
# 或者: from python_qt_binding.QtGui.QPushButton import setEnabled [as 别名]
#.........这里部分代码省略.........
tab_index = self.tabWidget.insertTab(insert_index, linenumber_editor, tab_name)
else:
tab_index = self.tabWidget.addTab(linenumber_editor, tab_name)
self.files.append(filename)
editor.setCurrentPath(os.path.basename(filename))
editor.load_request_signal.connect(self.on_load_request)
editor.document().modificationChanged.connect(self.on_editor_modificationChanged)
editor.cursorPositionChanged.connect(self.on_editor_positionChanged)
editor.setFocus(Qt.OtherFocusReason)
# editor.textChanged.connect(self.on_text_changed)
editor.undoAvailable.connect(self.on_text_changed)
self.tabWidget.setCurrentIndex(tab_index)
# self.find_dialog.set_search_path(filename)
else:
for i in range(self.tabWidget.count()):
if self.tabWidget.widget(i).filename == filename:
self.tabWidget.setCurrentIndex(i)
break
except Exception:
import traceback
rospy.logwarn("Error while open %s: %s", filename, traceback.format_exc(1))
self.tabWidget.setUpdatesEnabled(True)
if search_text:
try:
self._search_thread.stop()
self._search_thread = None
except Exception:
pass
self._search_thread = TextSearchThread(search_text, filename, path_text=self.tabWidget.widget(0).document().toPlainText(), recursive=True)
self._search_thread.search_result_signal.connect(self.on_search_result_on_open)
self._search_thread.start()
if goto_line != -1:
self._goto(goto_line, True)
self.upperButton.setEnabled(self.tabWidget.count() > 1)
def on_graph_load_file(self, path, insert_after=True):
insert_index = self.tabWidget.currentIndex() + 1
if not insert_after:
insert_index = self.tabWidget.currentIndex()
self.on_load_request(path, insert_index=insert_index)
def on_graph_goto(self, path, linenr):
if path == self.tabWidget.currentWidget().filename:
if linenr != -1:
self._goto(linenr, True)
def on_text_changed(self, value=""):
if self.tabWidget.currentWidget().hasFocus():
self.find_dialog.file_changed(self.tabWidget.currentWidget().filename)
def on_tab_changed(self, index):
if index > -1:
self.graph_view.set_file(self.tabWidget.widget(index).filename, self.tabWidget.widget(0).filename)
def on_close_tab(self, tab_index):
'''
Signal handling to close single tabs.
@param tab_index: tab index to close
@type tab_index: C{int}
'''
try:
doremove = True
w = self.tabWidget.widget(tab_index)
if w.document().isModified():
name = self.__getTabName(w.filename)
result = MessageBox.question(self, "Unsaved Changes", '\n\n'.join(["Save the file before closing?", name]))