本文整理汇总了Python中PySide.QtGui.QButtonGroup.buttons方法的典型用法代码示例。如果您正苦于以下问题:Python QButtonGroup.buttons方法的具体用法?Python QButtonGroup.buttons怎么用?Python QButtonGroup.buttons使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PySide.QtGui.QButtonGroup
的用法示例。
在下文中一共展示了QButtonGroup.buttons方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ColorChoiceWidget
# 需要导入模块: from PySide.QtGui import QButtonGroup [as 别名]
# 或者: from PySide.QtGui.QButtonGroup import buttons [as 别名]
class ColorChoiceWidget(ColorWidget):
def __init__(self):
super(ColorChoiceWidget, self).__init__()
self.buttons = []
self.buttonGroup = QButtonGroup()
self.buttonGroup.setExclusive(True)
self.buttonGroup.buttonClicked.connect(self.selectColor)
def setColors(self, colors):
layout = self.buttonWidget.layout()
id = 0
for color in colors:
button = ColorButton()
button.setColor(color)
button.setCheckable(True)
layout.addWidget(button)
self.buttonGroup.addButton(button)
self.buttonGroup.setId(button, id)
id += 1
layout.addStretch(10)
def setColor(self, color):
self.color = color
for button in self.buttonGroup.buttons():
diffs = map(lambda x, y: abs(x - y), button.color, color)
if sum(diffs) < 0.0001:
button.setChecked(True)
break
def selectColor(self, button):
self.color = button.color
self.valueChanged.emit(self.color)
示例2: RadioButtons
# 需要导入模块: from PySide.QtGui import QButtonGroup [as 别名]
# 或者: from PySide.QtGui.QButtonGroup import buttons [as 别名]
class RadioButtons(WidgetBridge, Choices):
_qttype = QGroupBox
def customize(self, widget):
assert self.choices, "RadioButtons: Cannot build widget bridge without choices"
# We give the GroupBox a container so we can add stretch at the end.
self.container = QWidget(self.parent)
hbox = QHBoxLayout(self.container)
self.buttongroup = QButtonGroup(self.parent)
if "direction" in self.config and \
self.config["direction"].lower() == "vertical":
box = QVBoxLayout()
else:
box = QHBoxLayout()
ix = 1
for text in self.choicesdict().values():
rb = QRadioButton(text, self.parent)
box.addWidget(rb)
self.buttongroup.addButton(rb, ix)
ix += 1
widget.setLayout(box)
hbox.addWidget(widget)
hbox.addStretch(1)
hbox.setContentsMargins(QMargins(0, 0, 0, 0))
def apply(self, value):
for b in self.buttongroup.buttons():
b.setChecked(False)
b = self.buttongroup.button(self.index(value) + 1)
if b:
b.setChecked(True)
def retrieve(self):
ix = self.buttongroup.checkedId()
return self.at(ix - 1) if ix > 0 else None
示例3: PeriodicTableWidget
# 需要导入模块: from PySide.QtGui import QButtonGroup [as 别名]
# 或者: from PySide.QtGui.QButtonGroup import buttons [as 别名]
class PeriodicTableWidget(QWidget):
selectionChanged = Signal()
def __init__(self, parent=None):
QWidget.__init__(self, parent)
# Widgets, layouts and signals
self._group = QButtonGroup()
layout = QGridLayout()
layout.setSpacing(0)
for i in range(18):
layout.setColumnMinimumWidth(i, 40)
layout.setColumnStretch(i, 0)
for i in list(range(7)) + [8, 9]:
layout.setRowMinimumHeight(i, 40)
layout.setRowStretch(i, 0)
## Element
for z, position in _ELEMENT_POSITIONS.items():
widget = ElementPushButton(z)
widget.setCheckable(True)
layout.addWidget(widget, *position)
self._group.addButton(widget, z)
## Labels
layout.addWidget(QLabel(''), 7, 0) # Dummy
layout.addWidget(QLabel('*'), 5, 2, Qt.AlignCenter)
layout.addWidget(QLabel('*'), 8, 2, Qt.AlignCenter)
layout.addWidget(QLabel('**'), 6, 2, Qt.AlignCenter)
layout.addWidget(QLabel('**'), 9, 2, Qt.AlignCenter)
for row in [0, 1, 2, 3, 4, 5, 6, 8, 9]:
layout.setRowStretch(row, 1)
self.setLayout(layout)
# Signals
self._group.buttonClicked.connect(self.selectionChanged)
# Default
self.setColorFunction(_category_color_function)
def setColorFunction(self, func):
if not callable(func):
raise ValueError('Not a function')
self._color_function = func
# Redraw
for widget in self._group.buttons():
z = self._group.id(widget)
bcolor = func(z)
fcolor = 'white' if _calculate_brightness(bcolor) < 128 else 'black'
sheet = 'background-color: %s; color: %s' % (bcolor.name(), fcolor)
widget.setStyleSheet(sheet)
def colorFunction(self):
return self._color_function
def setMultipleSelection(self, multiple):
self._group.setExclusive(not multiple)
def isMultipleSelection(self):
return not self._group.exclusive()
def setSelection(self, selection):
def _uncheckedAll():
for widget in self._group.buttons():
widget.setChecked(False)
if selection is None:
_uncheckedAll()
self.selectionChanged.emit()
return
if isinstance(selection, (int, six.string_types)):
selection = [selection]
if not self.isMultipleSelection() and len(selection) > 1:
raise ValueError('Multiple selection mode is off. Cannot select more than one element')
_uncheckedAll()
for z in selection:
if isinstance(z, six.string_types):
z = ep.atomic_number(z.strip())
self._group.button(z).setChecked(True)
self.selectionChanged.emit()
#
def selection(self):
selection = set()
for widget in self._group.buttons():
if widget.isChecked():
selection.add(self._group.id(widget))
if self.isMultipleSelection():
return frozenset(selection)
#.........这里部分代码省略.........
示例4: CameraControl
# 需要导入模块: from PySide.QtGui import QButtonGroup [as 别名]
# 或者: from PySide.QtGui.QButtonGroup import buttons [as 别名]
#.........这里部分代码省略.........
_safelyConnect(self.btnDown.clicked, self.deselectPreset)
self.btnDown.setIcon(QIcon(":icons/go-down"))
self.btnRight = CameraButton()
layout.addWidget(self.btnRight, 1, 2, 2, 1)
_safelyConnect(self.btnRight.pressed, lambda: self.camera.moveRight(self.panSpeed, self.tiltSpeed))
_safelyConnect(self.btnRight.released, self.camera.stop)
_safelyConnect(self.btnRight.clicked, self.deselectPreset)
self.btnRight.setIcon(QIcon(":icons/go-next"))
zoomInOut = PlusMinusButtons("Zoom")
_safelyConnect(zoomInOut.upButton.pressed, lambda: self.camera.zoomIn(self.zoomSpeed))
_safelyConnect(zoomInOut.upButton.released, self.camera.zoomStop)
_safelyConnect(zoomInOut.upButton.clicked, self.deselectPreset)
_safelyConnect(zoomInOut.downButton.pressed, lambda: self.camera.zoomOut(self.zoomSpeed))
_safelyConnect(zoomInOut.downButton.released, self.camera.zoomStop)
_safelyConnect(zoomInOut.downButton.clicked, self.deselectPreset)
layout.addWidget(zoomInOut, 0, 3, 4, 1)
focus = PlusMinusAutoButtons("Focus")
_safelyConnect(focus.upButton.pressed, self.camera.focusFar)
_safelyConnect(focus.upButton.released, self.camera.focusStop)
_safelyConnect(focus.upButton.clicked, self.deselectPreset)
_safelyConnect(focus.downButton.pressed, self.camera.focusNear)
_safelyConnect(focus.downButton.released, self.camera.focusStop)
_safelyConnect(focus.downButton.clicked, self.deselectPreset)
def autoFocusAndDeselect():
self.camera.focusAuto()
self.deselectPreset()
_safelyConnect(focus.autoButton.clicked, autoFocusAndDeselect)
layout.addWidget(focus, 0, 4, 4, 1)
brightness = PlusMinusAutoButtons("Bright")
_safelyConnect(brightness.upButton.clicked, self.camera.brighter)
_safelyConnect(brightness.downButton.clicked, self.camera.darker)
_safelyConnect(brightness.autoButton.clicked, self.camera.setAutoExposure)
layout.addWidget(brightness, 0, 5, 4, 1)
presets = QGridLayout()
presets.setRowStretch(0, 2)
presets.setRowStretch(1, 1)
self.presetGroup = QButtonGroup()
for i in range(1, 7):
btnPresetRecall = CameraButton()
presets.addWidget(btnPresetRecall, 0, i, 1, 1)
btnPresetRecall.setText(str(i))
_safelyConnect(btnPresetRecall.clicked, lambda i=i: self.recallPreset(i))
btnPresetRecall.setCheckable(True)
self.presetGroup.addButton(btnPresetRecall, i)
btnPresetSet = CameraButton()
presets.addWidget(btnPresetSet, 1, i, 1, 1)
btnPresetSet.setText("Set")
_safelyConnect(btnPresetSet.clicked, lambda i=i: self.storePreset(i))
layout.addLayout(presets, 4, 0, 3, 6)
def keyPressEvent(self, e):
if e.key() == Qt.Key_Left:
self.btnLeft.pressed.emit()
elif e.key() == Qt.Key_Right:
self.btnRight.pressed.emit()
elif e.key() == Qt.Key_Up:
self.btnUp.pressed.emit()
elif e.key() == Qt.Key_Down:
self.btnDown.pressed.emit()
def keyReleaseEvent(self, e):
if e.key() == Qt.Key_Left:
self.btnLeft.released.emit()
elif e.key() == Qt.Key_Right:
self.btnRight.released.emit()
elif e.key() == Qt.Key_Up:
self.btnUp.released.emit()
elif e.key() == Qt.Key_Down:
self.btnDown.released.emit()
@handlePyroErrors
def storePreset(self, index):
print "Storing preset " + str(index)
result = self.camera.storePreset(index)
self.presetGroup.buttons()[index - 1].setChecked(True)
return result
@handlePyroErrors
def recallPreset(self, index):
print "Recalling preset " + str(index)
return self.camera.recallPreset(index)
def deselectPreset(self):
if self.presetGroup.checkedId() >= 0:
# Yuck.
self.presetGroup.setExclusive(False)
while (self.presetGroup.checkedId() >= 0):
self.presetGroup.checkedButton().setChecked(False)
self.presetGroup.setExclusive(True)
示例5: CameraControl
# 需要导入模块: from PySide.QtGui import QButtonGroup [as 别名]
# 或者: from PySide.QtGui.QButtonGroup import buttons [as 别名]
#.........这里部分代码省略.........
def move(self):
sender = self.sender()
try:
result = self.controller.move(self.cameraID, sender.cameraBinding)
self.deselectPreset()
return result
except NamingError:
self.errorBox(StringConstants.nameErrorText)
except ProtocolError:
self.errorBox(StringConstants.protocolErrorText)
def stop(self):
try:
self.controller.move(self.cameraID, CameraMove.Stop)
except NamingError:
self.errorBox(StringConstants.nameErrorText)
except ProtocolError:
self.errorBox(StringConstants.protocolErrorText)
def focus(self):
sender = self.sender()
try:
result = self.controller.focus(self.cameraID, sender.cameraBinding)
self.deselectPreset()
return result
except NamingError:
self.errorBox(StringConstants.nameErrorText)
except ProtocolError:
self.errorBox(StringConstants.protocolErrorText)
def stopFocus(self):
try:
self.controller.focus(self.cameraID, CameraFocus.Stop)
except NamingError:
self.errorBox(StringConstants.nameErrorText)
except ProtocolError:
self.errorBox(StringConstants.protocolErrorText)
def zoom(self):
sender = self.sender()
try:
result = self.controller.zoom(self.cameraID, sender.cameraBinding)
self.deselectPreset()
return result
except NamingError:
self.errorBox(StringConstants.nameErrorText)
except ProtocolError:
self.errorBox(StringConstants.protocolErrorText)
def stopZoom(self):
try:
self.controller.zoom(self.cameraID, CameraZoom.Stop)
except NamingError:
self.errorBox(StringConstants.nameErrorText)
except ProtocolError:
self.errorBox(StringConstants.protocolErrorText)
def exposure(self):
sender = self.sender()
try:
result = self.controller.backlightComp(self.cameraID, sender.cameraBinding)
self.deselectPreset()
return result
except NamingError:
self.errorBox(StringConstants.nameErrorText)
except ProtocolError:
self.errorBox(StringConstants.protocolErrorText)
def storePreset(self):
sender = self.sender()
try:
result = self.controller.savePreset(self.cameraID, sender.cameraBinding)
self.presetGroup.buttons()[sender.cameraBinding].setChecked(True)
return result
except NamingError:
self.errorBox(StringConstants.nameErrorText)
except ProtocolError:
self.errorBox(StringConstants.protocolErrorText)
def recallPreset(self):
sender = self.sender()
try:
return self.controller.recallPreset(self.cameraID, sender.cameraBinding)
except NamingError:
self.errorBox(StringConstants.nameErrorText)
except ProtocolError:
self.errorBox(StringConstants.protocolErrorText)
def deselectPreset(self):
# Yuck.
self.presetGroup.setExclusive(False)
while (self.presetGroup.checkedId() >= 0):
self.presetGroup.checkedButton().setChecked(False)
self.presetGroup.setExclusive(True)
def errorBox(self, text):
msgBox = QMessageBox()
msgBox.setText(text)
msgBox.setIcon(QMessageBox.Critical)
msgBox.exec_()