本文整理汇总了Python中PyQt4.QtGui.QButtonGroup.setExclusive方法的典型用法代码示例。如果您正苦于以下问题:Python QButtonGroup.setExclusive方法的具体用法?Python QButtonGroup.setExclusive怎么用?Python QButtonGroup.setExclusive使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtGui.QButtonGroup
的用法示例。
在下文中一共展示了QButtonGroup.setExclusive方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ActionsPane
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
class ActionsPane(QWidget):
def __init__(self):
super().__init__()
self.group = QButtonGroup()
self.group.setExclusive(False)
self.scope_widget = ActionsScope()
self.action_buttons = QVBoxLayout()
self.big_red_button = QPushButton("Automate !!!", clicked=self.automate)
self.big_red_button.setStyleSheet("QPushButton { background-color : red}")
self.layout = QVBoxLayout()
self.setLayout(self.layout)
self.layout.addWidget(self.scope_widget)
self.layout.addLayout(self.action_buttons)
self.layout.addStretch()
self.layout.addWidget(self.big_red_button)
def registerAction(self, action):
button = ActionButton(action)
self.group.addButton(button.checkbox)
self.action_buttons.addWidget(button)
def getCheckedActions(self):
return [btn.parent().action for btn in self.group.buttons() if btn.isChecked()]
def automate(self, event):
for action in self.getCheckedActions():
action.on_triggered()
示例2: __init__
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
def __init__(self, parent = None):
super(StrokeStyleWidget, self).__init__(parent)
self.setupUi(self)
capGroup = QButtonGroup(self)
capGroup.addButton(self.squareCapButton, Qt.SquareCap)
capGroup.addButton(self.roundCapButton, Qt.RoundCap)
capGroup.addButton(self.flatCapButton, Qt.FlatCap)
capGroup.setExclusive(True)
capGroup.buttonClicked[int].connect(self.capStyleChanged)
joinGroup = QButtonGroup(self)
joinGroup.addButton(self.roundJoinButton, Qt.RoundJoin)
joinGroup.addButton(self.miterJoinButton, Qt.MiterJoin)
joinGroup.addButton(self.bevelJoinButton, Qt.BevelJoin)
joinGroup.setExclusive(True)
joinGroup.buttonClicked[int].connect(self.joinStyleChanged)
self.widthSpinner.valueChanged.connect(self.strokeWidthChanged)
示例3: OptionWidget
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
class OptionWidget(EditorWidget):
widgettype = 'Option Row'
def __init__(self, *args):
super(OptionWidget, self).__init__(*args)
self._bindvalue = None
self.group = QButtonGroup()
self.group.setExclusive(True)
self.group.buttonClicked.connect(self.emitvaluechanged)
def createWidget(self, parent):
widget = QWidget(parent)
return widget
def _buildfromlist(self, listconfig):
items = listconfig['items']
for item in items:
parts = item.split(';')
data = parts[0]
try:
desc = parts[1]
except IndexError:
desc = data
button = QPushButton()
icon = QIcon()
try:
path = parts[2]
if path.startswith("#"):
# Colour the button with the hex value
style = """
QPushButton:checked {{
border: 3px solid rgb(137, 175, 255);
background-color: {colour};
}}""".format(colour=path)
button.setStyleSheet(style)
elif path.endswith("_icon"):
icon = QIcon(":/icons/{}".format(path))
else:
icon = QIcon(path)
except:
icon = QIcon()
button.setCheckable(True)
button.setText(desc)
button.setProperty("value", data)
button.setIcon(icon)
button.setIconSize(QSize(24, 24))
self.widget.layout().addWidget(button)
self.group.addButton(button)
def initWidget(self, widget):
if not widget.layout():
widget.setLayout(QHBoxLayout())
widget.layout().setContentsMargins(0, 0, 0, 0)
def updatefromconfig(self):
super(OptionWidget, self).updatefromconfig()
for button in self.group.buttons():
self.group.removeButton(button)
self.widget.layout().removeWidget(button)
button.deleteLater()
button.setParent(None)
listconfig = self.config['list']
self._buildfromlist(listconfig)
super(OptionWidget, self).endupdatefromconfig()
def validate(self, *args):
button = self.group.checkedButton()
if button:
return True
return False
@property
def nullvalues(self):
return ['NULL']
def setvalue(self, value):
if value in self.nullvalues:
value = None
for button in self.group.buttons():
buttonvalue = button.property("value")
if (value is None and buttonvalue in self.nullvalues) or buttonvalue == str(value):
button.setChecked(True)
self.emitvaluechanged()
return
def value(self):
button = self.group.checkedButton()
if not button:
return None
value = button.property("value")
#.........这里部分代码省略.........
示例4: AudioVideoTab
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
#.........这里部分代码省略.........
self.preserveaspectQChB.toggled.connect(self.command_update_preserve_aspect)
self.preservesizeQChB.toggled.connect(self.command_update_preserve_size)
def resize_parent(self):
"""Give MainWindow its default size."""
self.parent.setMinimumSize(self.parent.sizeHint())
self.parent.resize(self.parent.sizeHint())
def clear(self):
"""Clear all values of graphical widgets."""
lines = [
self.commandQLE,
self.widthQLE,
self.heightQLE,
self.aspect1QLE,
self.aspect2QLE,
self.frameQLE,
self.bitrateQLE,
self.threadsQLE,
self.beginQLE,
self.embedQLE,
self.durationQLE,
]
for i in lines:
i.clear()
self.vidcodecQCB.setCurrentIndex(0)
self.audcodecQCB.setCurrentIndex(0)
self.freqQCB.setCurrentIndex(0)
self.audbitrateQCB.setCurrentIndex(0)
self.rotateQCB.setCurrentIndex(0)
self.preserveaspectQChB.setChecked(False)
self.preservesizeQChB.setChecked(False)
self.group.setExclusive(False)
self.chan1QRB.setChecked(False)
self.chan2QRB.setChecked(False)
self.group.setExclusive(True)
# setExclusive(False) in order to be able to uncheck checkboxes and
# then setExclusive(True) so only one radio button can be set
def fill_video_comboboxes(self, vcodecs, acodecs, extraformats):
vcodecs = [i for i in vcodecs.split("\n")] if vcodecs else []
acodecs = [i for i in acodecs.split("\n")] if acodecs else []
extraformats = [i for i in extraformats.split("\n")] if extraformats else []
self.vidcodecQCB.currentIndexChanged.disconnect()
self.audcodecQCB.currentIndexChanged.disconnect()
self.vidcodecQCB.clear()
self.audcodecQCB.clear()
self.extQCB.clear()
self.vidcodecQCB.addItems([self.defaultStr, self.DisableStream] + vcodecs)
self.audcodecQCB.addItems([self.defaultStr, self.DisableStream] + acodecs)
self.extQCB.addItems(sorted(self.formats + extraformats))
self.vidcodecQCB.currentIndexChanged.connect(self.command_update_vcodec)
self.audcodecQCB.currentIndexChanged.connect(self.command_update_acodec)
def ok_to_continue(self):
"""
Check if everything is ok with audiovideotab to continue conversion.
Check if:
- Either ffmpeg or avconv are installed.
Return True if all tests pass, else False.
示例5: AudioVideoTab
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
#.........这里部分代码省略.........
self.aspect1LineEdit.textChanged.connect(
lambda: self.command_elements_change('aspect'))
self.aspect2LineEdit.textChanged.connect(
lambda: self.command_elements_change('aspect'))
self.frameLineEdit.textChanged.connect(
lambda: self.command_elements_change('frames'))
self.bitrateLineEdit.textChanged.connect(
lambda: self.command_elements_change('video_bitrate'))
self.freqComboBox.currentIndexChanged.connect(
lambda: self.command_elements_change('frequency'))
self.audio_bitrateComboBox.currentIndexChanged.connect(
lambda: self.command_elements_change('audio_bitrate'))
self.chan1RadioButton.clicked.connect(
lambda: self.command_elements_change('channels1'))
self.chan2RadioButton.clicked.connect(
lambda: self.command_elements_change('channels2'))
def resize_parent(self):
"""Resize MainWindow."""
height = MAIN_FIXED_HEIGHT if self.frame.isVisible() else MAIN_HEIGHT
self.parent.setMinimumSize(MAIN_WIDTH, height)
self.parent.resize(MAIN_WIDTH, height)
def clear(self):
"""Clear all values of graphical widgets."""
lines = [self.commandLineEdit, self.widthLineEdit, self.heightLineEdit,
self.aspect1LineEdit, self.aspect2LineEdit, self.frameLineEdit,
self.bitrateLineEdit, self.extLineEdit]
for i in lines:
i.clear()
self.freqComboBox.setCurrentIndex(0)
self.audio_bitrateComboBox.setCurrentIndex(0)
self.group.setExclusive(False)
self.chan1RadioButton.setChecked(False)
self.chan2RadioButton.setChecked(False)
self.group.setExclusive(True)
# setExclusive(False) in order to be able to uncheck checkboxes and
# then setExclusive(True) so only one radio button can be set
def ok_to_continue(self):
"""
Check if everything is ok with audiovideotab to continue conversion.
Check if:
- Either ffmpeg or avconv are installed.
- Desired extension is valid.
- self.commandLineEdit is empty.
Return True if all tests pass, else False.
"""
if not self.parent.ffmpeg and not self.parent.avconv:
QMessageBox.warning(self, 'FF Multi Converter - ' + self.tr(
'Error!'), self.tr('Neither ffmpeg nor avconv are installed.'
'\nYou will not be able to convert audio/video files until you'
' install one of them.'))
return False
if self.extLineEdit.isEnabled():
text = str(self.extLineEdit.text()).strip()
if len(text.split()) != 1 or text[0] == '.':
QMessageBox.warning(self, 'FF Multi Converter - ' + self.tr(
'Error!'), self.tr('Extension must be one word and must '
'not start with a dot.'))
self.extLineEdit.selectAll()
self.extLineEdit.setFocus()
return False
示例6: create_rows
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
def create_rows(self, layout):
play_button_group = QButtonGroup(self)
old_play_button_group = QButtonGroup(self)
for num, (source, dest, text, dl_fname, dl_hash, extras, icon)\
in enumerate(self.list, 3):
tt_text = self.build_text_help_label(text, source, extras)
ico_label = QLabel('', self)
ico_label.setToolTip(tt_text)
if icon:
ico_label.setPixmap(QPixmap.fromImage(icon))
layout.addWidget(ico_label, num, 0)
tt_label = QLabel(text, self)
tt_label.setToolTip(tt_text)
layout.addWidget(tt_label, num, 1)
if self.hide_text:
tt_label.hide()
# Play button.
t_play_button = QPushButton(self)
play_button_group.addButton(t_play_button, num - 3)
t_play_button.setToolTip(self.play_help)
t_play_button.setIcon(QIcon(os.path.join(icons_dir, 'play.png')))
layout.addWidget(t_play_button, num, self.play_column)
if self.note[dest]:
t_play_old_button = QPushButton(self)
old_play_button_group.addButton(t_play_old_button, num - 3)
t_play_old_button.setIcon(
QIcon(os.path.join(icons_dir, 'play.png')))
if not self.hide_text:
t_play_old_button.setToolTip(self.note[dest])
else:
t_play_old_button.setToolTip(self.play_old_help_short)
layout.addWidget(t_play_old_button, num, self.play_old_column)
else:
dummy_label = QLabel('', self)
dummy_label.setToolTip(self.play_old_empty_line_help)
layout.addWidget(dummy_label, num, self.play_old_column)
# The group where we later look what to do:
t_button_group = QButtonGroup(self)
t_button_group.setExclusive(True)
# Now the four buttons
t_add_button = QPushButton(self)
t_add_button.setCheckable(True)
t_add_button.setChecked(True)
t_add_button.setFlat(True)
t_add_button.setToolTip(self.add_help_text_short)
t_add_button.setIcon(QIcon(os.path.join(icons_dir, 'add.png')))
layout.addWidget(t_add_button, num, self.add_column)
t_button_group.addButton(t_add_button, action['add'])
t_keep_button = QPushButton(self)
t_keep_button.setCheckable(True)
t_keep_button.setFlat(True)
t_keep_button.setToolTip(self.keep_help_text_short)
t_keep_button.setIcon(QIcon(os.path.join(icons_dir, 'keep.png')))
layout.addWidget(t_keep_button, num, self.keep_column)
t_button_group.addButton(t_keep_button, action['keep'])
t_delete_button = QPushButton(self)
t_delete_button.setCheckable(True)
t_delete_button.setFlat(True)
t_delete_button.setToolTip(self.delete_help_text_short)
t_delete_button.setIcon(QIcon(os.path.join(icons_dir,
'delete.png')))
layout.addWidget(t_delete_button, num, self.delete_column)
t_button_group.addButton(t_delete_button, action['delete'])
t_blacklist_button = QPushButton(self)
t_blacklist_button.setCheckable(True)
t_blacklist_button.setFlat(True)
t_blacklist_button.setToolTip(self.blacklist_help_text_short)
t_blacklist_button.setIcon(QIcon(os.path.join(icons_dir,
'blacklist.png')))
if self.show_skull_and_bones:
layout.addWidget(
t_blacklist_button, num, self.blacklist_column)
else:
t_blacklist_button.hide()
t_button_group.addButton(t_blacklist_button, action['blacklist'])
self.buttons_groups.append(t_button_group)
play_button_group.buttonClicked.connect(
lambda button: play(self.list[play_button_group.id(button)][3]))
old_play_button_group.buttonClicked.connect(
lambda button: playFromText(
self.note[self.list[old_play_button_group.id(button)][1]]))
示例7: PetaBencanaDialog
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
class PetaBencanaDialog(QDialog, FORM_CLASS):
"""Downloader for PetaBencana data.
.. versionadded: 3.3
"""
def __init__(self, parent=None, iface=None):
"""Constructor for import dialog.
.. versionadded: 3.3
:param parent: Optional widget to use as parent.
:type parent: QWidget
:param iface: An instance of QGisInterface.
:type iface: QGisInterface
"""
QDialog.__init__(self, parent)
self.parent = parent
self.setupUi(self)
title = self.tr('PetaBencana Downloader')
self.setWindowTitle(title)
self.iface = iface
self.source = None
self.radio_button_group = QButtonGroup()
self.radio_button_group.addButton(self.radio_button_production)
self.radio_button_group.addButton(self.radio_button_development)
self.radio_button_group.setExclusive(True)
self.radio_button_production.setChecked(True)
self.populate_combo_box()
developer_mode = setting('developer_mode', False, bool)
if not developer_mode:
self.radio_button_widget.hide()
self.source_label.hide()
self.output_group.adjustSize()
# signals
self.radio_button_production.clicked.connect(self.populate_combo_box)
self.radio_button_development.clicked.connect(self.populate_combo_box)
# creating progress dialog for download
self.progress_dialog = QProgressDialog(self)
self.progress_dialog.setAutoClose(False)
self.progress_dialog.setWindowTitle(title)
# Set up things for context help
self.help_button = self.button_box.button(QtGui.QDialogButtonBox.Help)
# Allow toggling the help button
self.help_button.setCheckable(True)
self.help_button.toggled.connect(self.help_toggled)
self.main_stacked_widget.setCurrentIndex(1)
# set up the validator for the file name prefix
expression = QRegExp('^[A-Za-z0-9-_]*$')
validator = QRegExpValidator(expression, self.filename_prefix)
self.filename_prefix.setValidator(validator)
self.time_stamp = None
self.restore_state()
@pyqtSlot()
@pyqtSignature('bool') # prevents actions being handled twice
def help_toggled(self, flag):
"""Show or hide the help tab in the stacked widget.
.. versionadded: 3.3
:param flag: Flag indicating whether help should be shown or hidden.
:type flag: bool
"""
if flag:
self.help_button.setText(self.tr('Hide Help'))
self.show_help()
else:
self.help_button.setText(self.tr('Show Help'))
self.hide_help()
def hide_help(self):
"""Hide the usage info from the user.
.. versionadded:: 3.3
"""
self.main_stacked_widget.setCurrentIndex(1)
def show_help(self):
"""Show usage info to the user.
.. versionadded: 3.3
"""
# Read the header and footer html snippets
self.main_stacked_widget.setCurrentIndex(0)
header = html_header()
footer = html_footer()
#.........这里部分代码省略.........
示例8: createLabelAndList
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
def createLabelAndList(labelText):
widget, label = _createLabelInWidget(labelText, QGridLayout)
buttonGroup = QButtonGroup(widget)
buttonGroup.setObjectName('buttonGroup')
buttonGroup.setExclusive(False)
return (widget, label, buttonGroup)
示例9: PlotWidget
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
class PlotWidget(QtGui.QWidget, plot_widget_class):
"""Wrapper widget for PyQtGraph adding some extra buttons"""
def __init__(self, parent=None, fps=100, title="", *args):
super(PlotWidget, self).__init__(*args)
self.setupUi(self)
# Limit the plot update to 10Hz
self._ts = time()
self._delay = 0.1
# Check if we could import PyQtGraph, if not then stop here
if not _pyqtgraph_found:
self.can_enable = False
return
else:
self.can_enable = True
self._items = {}
self._last_item = 0
self.setSizePolicy(QtGui.QSizePolicy(
QtGui.QSizePolicy.MinimumExpanding,
QtGui.QSizePolicy.MinimumExpanding))
self.setMinimumSize(self.minimumSizeHint())
self.parent = parent
pg.setConfigOption('background', 'w')
pg.setConfigOption('foreground', 'k')
self._plot_widget = pg.PlotWidget()
self._plot_widget.hideButtons()
self._plot_widget.setLabel('bottom', "Time", "ms")
self._plot_widget.addLegend()
self._plot_widget.getViewBox().disableAutoRange(ViewBox.XAxis)
self._plot_widget.getViewBox().sigRangeChangedManually.connect(self._manual_range_change)
self._plot_widget.getViewBox().setMouseEnabled(x=False, y=True)
self._plot_widget.getViewBox().setMouseMode(ViewBox.PanMode)
self.plotLayout.addWidget(self._plot_widget)
#self.saveToFile.clicked.connect(self.saveToFileSignal)
self._x_min = 0
self._x_max = 500
self._enable_auto_y.setChecked(True)
self._enable_samples_x.setChecked(True)
self._last_ts = None
self._dtime = None
self._x_range = (float(self._range_x_min.text()), float(self._range_x_max.text()))
self._nbr_samples = int(self._nbr_of_samples_x.text())
self._nbr_of_samples_x.valueChanged.connect(self._nbr_samples_changed)
self._range_y_min.valueChanged.connect(self._y_range_changed)
self._range_y_max.valueChanged.connect(self._y_range_changed)
self._y_btn_group = QButtonGroup()
self._y_btn_group.addButton(self._enable_auto_y)
self._y_btn_group.addButton(self._enable_range_y)
self._y_btn_group.setExclusive(True)
self._y_btn_group.buttonClicked.connect(self._y_mode_change)
self._x_btn_group = QButtonGroup()
self._x_btn_group.addButton(self._enable_range_x)
self._x_btn_group.addButton(self._enable_samples_x)
self._x_btn_group.addButton(self._enable_seconds_x)
self._x_btn_group.addButton(self._enable_manual_x)
self._x_btn_group.setExclusive(True)
self._x_btn_group.buttonClicked.connect(self._x_mode_change)
self._draw_graph = True
self._auto_redraw.stateChanged.connect(self._auto_redraw_change)
def _auto_redraw_change(self, state):
"""Callback from the auto redraw checkbox"""
if state == 0:
self._draw_graph = False
else:
self._draw_graph = True
def _x_mode_change(self, box):
"""Callback when user changes the X-axis mode"""
if box == self._enable_range_x:
logger.info("Enable range x")
self._x_range = (float(self._range_x_min.text()), float(self._range_x_max.text()))
else:
self._range_x_min.setEnabled(False)
self._range_x_max.setEnabled(False)
def _y_mode_change(self, box):
"""Callback when user changes the Y-axis mode"""
if box == self._enable_range_y:
self._range_y_min.setEnabled(True)
self._range_y_max.setEnabled(True)
y_range = (float(self._range_y_min.value()), float(self._range_y_max.value()))
self._plot_widget.getViewBox().setRange(yRange=y_range)
else:
self._range_y_min.setEnabled(False)
self._range_y_max.setEnabled(False)
#.........这里部分代码省略.........
示例10: OptionWidget
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
class OptionWidget(EditorWidget):
widgettype = 'Option Row'
def __init__(self, *args):
super(OptionWidget, self).__init__(*args)
self._bindvalue = None
self.group = QButtonGroup()
self.group.setExclusive(True)
self.group.buttonClicked.connect(self.emitvaluechanged)
def createWidget(self, parent):
widget = QWidget(parent)
widget.setLayout(QHBoxLayout())
widget.layout().setContentsMargins(0,0,0,0)
return widget
def _buildfromlist(self, listconfig):
items = listconfig['items']
for item in items:
parts = item.split(';')
data = parts[0]
try:
desc = parts[1]
except IndexError:
desc = data
try:
path = parts[2]
if path.endswith("_icon"):
icon = QIcon(":/icons/{}".format(path))
else:
icon = QIcon(path)
except:
icon = QIcon()
button = QPushButton()
button.setCheckable(True)
button.setText(desc)
button.setProperty("value", data)
button.setIcon(icon)
button.setIconSize(QSize(24,24))
self.widget.layout().addWidget(button)
self.group.addButton(button)
def initWidget(self, widget):
pass
def updatefromconfig(self):
super(OptionWidget, self).updatefromconfig()
listconfig = self.config['list']
self._buildfromlist(listconfig)
super(OptionWidget, self).endupdatefromconfig()
def validate(self, *args):
button = self.group.checkedButton()
if button:
self.raisevalidationupdate(True)
else:
self.raisevalidationupdate(False)
self.emitvaluechanged()
def setvalue(self, value):
for button in self.group.buttons():
if button.property("value") == value:
button.setChecked(True)
return
def value(self):
button = self.group.checkedButton()
if not button:
return None
return button.property("value")
示例11: create_rows
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
def create_rows(self, layout, sarea):
u"""Build the rows of the dialog box"""
play_button_group = QButtonGroup(sarea)
old_play_button_group = QButtonGroup(sarea)
for num, entry in enumerate(self.entries_list, 2):
tt_text = self.build_text_help_label(entry)
ico_label = QLabel('', sarea)
ico_label.setToolTip(tt_text)
if entry.icon:
ico_label.setPixmap(QPixmap.fromImage(entry.icon))
layout.addWidget(ico_label, num, 0)
tt_label = QLabel(entry.display_word, sarea)
tt_label.setToolTip(tt_text)
layout.addWidget(tt_label, num, 1)
if self.hide_text:
tt_label.hide()
# Play button.
t_play_button = QPushButton(sarea)
play_button_group.addButton(t_play_button, num-2)
t_play_button.setToolTip(self.play_help)
t_play_button.setIcon(QIcon(os.path.join(icons_dir, 'play.png')))
layout.addWidget(t_play_button, num, self.play_column)
if self.note[entry.audio_field_name]:
t_play_old_button = QPushButton(sarea)
old_play_button_group.addButton(t_play_old_button, num-2)
t_play_old_button.setIcon(
QIcon(os.path.join(icons_dir, 'play.png')))
if not self.hide_text:
t_play_old_button.setToolTip(
self.note[entry.audio_field_name])
else:
t_play_old_button.setToolTip(self.play_old_help_short)
layout.addWidget(t_play_old_button, num, self.play_old_column)
else:
dummy_label = QLabel('', sarea)
dummy_label.setToolTip(self.play_old_empty_line_help)
layout.addWidget(dummy_label, num, self.play_old_column)
# The group where we later look what to do:
t_button_group = QButtonGroup(sarea)
t_button_group.setExclusive(True)
# Now the four buttons
t_add_button = QPushButton(sarea)
t_add_button.setCheckable(True)
t_add_button.setFlat(True)
t_add_button.setToolTip(self.add_help_text_short)
t_add_button.setIcon(QIcon(os.path.join(icons_dir, 'add.png')))
layout.addWidget(t_add_button, num, self.add_column)
t_button_group.addButton(t_add_button, Action.Add)
t_keep_button = QPushButton(sarea)
t_keep_button.setCheckable(True)
t_keep_button.setFlat(True)
t_keep_button.setToolTip(self.keep_help_text_short)
t_keep_button.setIcon(QIcon(os.path.join(icons_dir, 'keep.png')))
layout.addWidget(t_keep_button, num, self.keep_column)
t_button_group.addButton(t_keep_button, Action.Keep)
t_delete_button = QPushButton(sarea)
t_delete_button.setCheckable(True)
t_delete_button.setFlat(True)
t_delete_button.setToolTip(self.delete_help_text_short)
t_delete_button.setIcon(
QIcon(os.path.join(icons_dir, 'delete.png')))
layout.addWidget(t_delete_button, num, self.delete_column)
t_button_group.addButton(t_delete_button, Action.Delete)
t_blacklist_button = QPushButton(sarea)
t_blacklist_button.setCheckable(True)
t_blacklist_button.setFlat(True)
t_blacklist_button.setToolTip(self.blacklist_help_text_short)
t_blacklist_button.setIcon(
QIcon(os.path.join(icons_dir, 'blacklist.png')))
if entry.entry_hash:
layout.addWidget(
t_blacklist_button, num, self.blacklist_column)
else:
t_blacklist_button.hide()
dummy_label_bl = QLabel('', sarea)
dummy_label_bl.setToolTip(self.blacklist_empty_line_help)
layout.addWidget(dummy_label_bl, num, self.blacklist_column)
t_button_group.button(entry.action).setChecked(True)
# New: check a button based on how good the downloader is.
t_button_group.addButton(t_blacklist_button, Action.Blacklist)
self.buttons_groups.append(t_button_group)
play_button_group.buttonClicked.connect(
lambda button: play(
self.entries_list[play_button_group.id(button)].file_path))
# N.B.: anki.sound.play() plays files from anywhere, not just
# from the colection.media folder. We should be good,
# here. (This behaviour may be a security risk, idk.)
old_play_button_group.buttonClicked.connect(
lambda button: playFromText(
self.note[
self.entries_list[
old_play_button_group.id(button)].audio_field_name]))
示例12: DateTimePickerDialog
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
class DateTimePickerDialog(QDialog):
"""
A custom date picker with a time and date picker
"""
def __init__(self, mode="DateTime"):
QDialog.__init__(self)
# Set up the user interface from Designer.
self.ui = Ui_datatimerpicker()
self.ui.setupUi(self)
self.group = QButtonGroup()
self.group.setExclusive(True)
self.group.addButton(self.ui.ambutton)
self.group.addButton(self.ui.pmbutton)
self.ui.ambutton.toggled.connect(self.isDirty)
self.ui.pmbutton.toggled.connect(self.isDirty)
self.ui.datepicker.selectionChanged.connect(self.isDirty)
self.ui.hourpicker.itemSelectionChanged.connect(self.isDirty)
self.ui.minutepicker.itemSelectionChanged.connect(self.isDirty)
self.ui.buttonBox.accepted.connect(self.accept)
self.ui.buttonBox.rejected.connect(self.reject)
self.ui.setasnowbutton.pressed.connect(self.setAsNow)
self.setWindowFlags(Qt.Dialog | Qt.CustomizeWindowHint)
if mode == "Date":
self.ui.hourpicker.hide()
self.ui.minutepicker.hide()
self.ui.ampmbutton.hide()
elif mode == "Time":
self.ui.datepicker.hide()
def isDirty(self, *args):
date = self.getSelectedDate()
time = self.getSelectedTime()
datetime = QDateTime(date, time)
value = datetime.toString("ddd d MMM yyyy 'at' h:m ap")
self.ui.label.setText(value)
def setDateTime(self, datetime):
"""
Set the picker to datatime
datetime - The QDateTime with the value to set.
"""
self.setTime(datetime.time())
self.setDate(datetime.date())
def setAsNow(self):
"""
Set the current date and time on the picker as now.
"""
now = QDateTime.currentDateTime()
self.setDateTime(now)
def setTime(self, time):
"""
Set just the time part of the picker
"""
hour = time.hour()
if hour > 12:
hour = hour - 12
if hour == 0:
hour = hour + 12
minute = time.minute()
minute = int(round(minute / 5.0) * 5.0)
amap = time.toString("AP")
log("Hour %s Minute %s" % (hour, minute))
try:
houritems = self.ui.hourpicker.findItems(str(hour), Qt.MatchFixedString)
self.ui.hourpicker.setCurrentItem(houritems[0])
except IndexError:
log("Can't find hour")
try:
minuteitems = self.ui.minutepicker.findItems(str(minute), Qt.MatchFixedString)
self.ui.minutepicker.setCurrentItem(minuteitems[0])
except IndexError:
log("Can't find minute")
if amap == "PM":
self.ui.pmbutton.toggle()
def setDate(self, date):
"""
Set just the date part of the picker
"""
self.ui.datepicker.setSelectedDate(date)
def getSelectedTime(self):
"""
Returns the currently selected data and time
"""
try:
hour = self.ui.hourpicker.currentItem().text()
except AttributeError:
hour = ""
try:
#.........这里部分代码省略.........
示例13: BrowserPage
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
class BrowserPage(QWidget):
def __init__(self, base):
QWidget.__init__(self)
current_browser = base.core.get_default_browser()
description = QLabel(i18n.get("web_browser_tab_description"))
description.setWordWrap(True)
self.command = QLineEdit()
self.default_browser = RadioButton(i18n.get("use_default_browser"), self)
self.default_browser.selected.connect(self.__on_defaul_selected)
self.custom_browser = RadioButton(i18n.get("set_custom_browser"), self)
self.custom_browser.selected.connect(self.__on_custom_selected)
custom_label = QLabel(i18n.get("command"))
self.open_button = QPushButton(i18n.get("open"))
self.test_button = QPushButton(i18n.get("test"))
self.test_button.clicked.connect(self.__on_test)
command_box = QHBoxLayout()
command_box.setSpacing(5)
command_box.addWidget(custom_label)
command_box.addWidget(self.command, 1)
# command_box.addWidget(self.open_button)
command_box.addWidget(self.test_button)
self.button_group = QButtonGroup()
self.button_group.addButton(self.default_browser.radiobutton)
self.button_group.addButton(self.custom_browser.radiobutton)
self.button_group.setExclusive(True)
vbox = QVBoxLayout()
vbox.setSpacing(0)
vbox.setContentsMargins(5, 5, 5, 0)
vbox.addWidget(description)
vbox.addSpacing(15)
vbox.addWidget(self.default_browser)
vbox.addSpacing(10)
vbox.addWidget(self.custom_browser)
vbox.addLayout(command_box)
vbox.addStretch(1)
self.setLayout(vbox)
if current_browser == "":
self.default_browser.set_value(True)
self.command.setText("")
self.__on_defaul_selected()
else:
self.custom_browser.set_value(True)
self.command.setText(current_browser)
self.__on_custom_selected()
def __on_test(self):
cmd = str(self.command.text())
if cmd != "":
subprocess.Popen([cmd, "http://turpial.org.ve/"])
def __on_defaul_selected(self):
self.open_button.setEnabled(False)
self.test_button.setEnabled(False)
self.command.setEnabled(False)
def __on_custom_selected(self):
self.open_button.setEnabled(True)
self.test_button.setEnabled(True)
self.command.setEnabled(True)
def get_config(self):
if self.default_browser.get_value():
cmd = ""
else:
cmd = str(self.command.text())
return {"cmd": cmd}
示例14: ControlPanel
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
class ControlPanel(QFrame):
def __init__(self, parent=None):
QFrame.__init__(self, parent)
self.setFrameShape(spec.FRAME_SHAPE)
self.setAutoFillBackground(True)
self.palette().setColor(self.backgroundRole(), spec.POV_COLOR)
self.label = QuitterLabel("pksampler", self)
self.label.setScaledContents(True)
font = self.label.font()
font.setPointSize(40)
font.setFamily("Lucida Grande")
self.label.palette().setColor(QPalette.WindowText, QColor(60, 60, 80))
self.mapper = midi.InputWidget(parent=self)
self.mapper.setMinimumHeight(50)
self.mapper.setMinimumWidth(100)
self.send1Slot = slots.EffectSlot(self)
self.send1Slot.frame_color = SLOT_COLOR
self.send2Slot = slots.EffectSlot(self)
self.send2Slot.frame_color = SLOT_COLOR
self.modeGroup = QButtonGroup(self)
self.modeGroup.setExclusive(True)
self.modeButtons = []
for mode in ("select", "play", "delete"):
button = pk.widgets.Button(self)
button.setText(mode)
button.setCheckable(True)
setattr(self, mode + "Button", button)
self.modeGroup.addButton(button)
self.modeButtons.append(button)
self.clickButton = pk.widgets.Button(self, color="green")
self.clickButton.setText("click")
self.clickButton.setCheckable(True)
QObject.connect(self.send1Slot, SIGNAL("selected(QWidget *)"), self, SIGNAL("selected(QWidget *)"))
QObject.connect(self.send2Slot, SIGNAL("selected(QWidget *)"), self, SIGNAL("selected(QWidget *)"))
QObject.connect(self.send1Slot, SIGNAL("added(QWidget *, QWidget *)"), self.setSend)
QObject.connect(self.send1Slot, SIGNAL("deleted(QWidget *, QWidget *)"), self, SIGNAL("unsetSend1()"))
QObject.connect(self.send2Slot, SIGNAL("added(QWidget *, QWidget *)"), self.setSend)
QObject.connect(self.send1Slot, SIGNAL("deleted(QWidget *, QWidget *)"), self, SIGNAL("unsetSend2()"))
Layout = QHBoxLayout(self)
Layout.addWidget(self.label)
Layout.addWidget(self.mapper)
# Layout.addStretch(20)
Layout.addWidget(self.send1Slot)
Layout.addWidget(self.send2Slot)
# pk.widgets.utils.h_centered(Layout, self.send1Slot)
# pk.widgets.utils.h_centered(Layout, self.send2Slot)
# ModeLayout = QGridLayout()
ModeLayout = QHBoxLayout()
Layout.addLayout(ModeLayout)
for index, button in enumerate(self.modeButtons):
# ModeLayout.addWidget(button, index % 2, index / 2)
ModeLayout.addWidget(button)
# pk.widgets.utils.h_centered(Layout, button)
Layout.addStretch(1)
# Layout.addWidget(self.clickButton)
pk.widgets.utils.h_centered(Layout, self.clickButton)
def setSend(self, part, slot):
if slot == self.send1Slot:
self.emit(SIGNAL("setSend1(QWidget *)"), part)
if slot == self.send2Slot:
self.emit(SIGNAL("setSend2(QWidget *)"), part)
示例15: AuthenticationFrontend
# 需要导入模块: from PyQt4.QtGui import QButtonGroup [as 别名]
# 或者: from PyQt4.QtGui.QButtonGroup import setExclusive [as 别名]
class AuthenticationFrontend(ScrollArea):
COMPONENT = 'auth_cert'
LABEL = tr('Authentication server')
REQUIREMENTS = ('auth_cert',)
ICON = ':/icons/auth_protocol.png'
def __init__(self, client, parent):
self.__loading = True
ScrollArea.__init__(self)
self.mainwindow = parent
self.client = client
self.modified = False
self.qauthcertobject = QAuthCertObject.getInstance()
frame = QFrame(self)
layout = QVBoxLayout(frame)
layout.addWidget(QLabel('<H1>%s</H1>' % tr('Authentication server') ))
head_box = QGroupBox(tr("How the authentication server handles certificates"))
head = QFormLayout(head_box)
self.strictCheckBox = QCheckBox()
head.addRow(QLabel(tr("Strict mode (check the client's certificate against the installed CA)")), self.strictCheckBox)
self.connect(self.strictCheckBox, SIGNAL('toggled(bool)'),
self.setStrict)
self.cl_auth_box = QGroupBox(tr("Client authentication with a certificate is"))
cl_auth = QVBoxLayout(self.cl_auth_box)
self.auth_by_cert = QButtonGroup()
self.auth_by_cert.setExclusive(True)
self.mainwindow.writeAccessNeeded(self.strictCheckBox)
labels = [tr('forbidden'), tr('allowed'), tr('mandatory')]
for index, label_button in enumerate(labels):
button = QRadioButton(label_button)
self.auth_by_cert.addButton(button, index)
cl_auth.addWidget(button)
self.mainwindow.writeAccessNeeded(button)
self.auth_by_cert.button(0).setChecked(Qt.Checked)
self.connect(self.auth_by_cert, SIGNAL('buttonClicked(int)'),
self.auth_by_cert_modified)
# Captive portal
# --------------
self.portal_groupbox = QGroupBox(tr("Captive portal"))
self.portal_groupbox.setLayout(QVBoxLayout())
# Enabled checkbox:
self.portal_checkbox = QCheckBox(tr("Enable captive portal"))
self.connect(self.portal_checkbox, SIGNAL('toggled(bool)'),
self.setPortalEnabled)
# List of networks redirected to the captive portal:
self.portal_nets_groupbox = QGroupBox(
tr("Networks handled by the captive portal"))
self.portal_nets_groupbox.setLayout(QVBoxLayout())
self.portal_nets_edit = NetworkListEdit()
self.connect(self.portal_nets_edit, SIGNAL('textChanged()'), self.setPortalNets)
self.portal_nets_groupbox.layout().addWidget(self.portal_nets_edit)
# Pack the widgets:
for widget in (self.portal_checkbox, self.portal_nets_groupbox):
self.portal_groupbox.layout().addWidget(widget)
self.mainwindow.writeAccessNeeded(self.portal_checkbox)
self.mainwindow.writeAccessNeeded(self.portal_nets_edit)
if not EDENWALL:
self.portal_groupbox.setVisible(False)
# authentication server
self.pki_widget = PkiEmbedWidget(self.client, self, 'auth_cert', PkiEmbedWidget.SHOW_ALL|PkiEmbedWidget.CRL_OPTIONAL, self.setModified)
self.mainwindow.writeAccessNeeded(self.pki_widget)
layout.addWidget(head_box)
layout.addWidget(self.cl_auth_box)
layout.addWidget(self.portal_groupbox)
layout.addWidget(self.pki_widget)
layout.addStretch()
self.setWidget(frame)
self.setWidgetResizable(True)
self.resetConf()
self.__loading = False
def setModified(self, isModified=True, message=""):
if self.__loading:
return
if isModified:
self.modified = True
self.mainwindow.setModified(self, True)
if message:
self.mainwindow.addToInfoArea(message)
else:
self.modified = False
#.........这里部分代码省略.........