def __init__(self, name, parent=None):
super(Chatter, self).__init__(parent)
self.name = name
self.text_panel = QtWidgets.QTextEdit()
self.text_panel.setReadOnly(True)
self.input = QtWidgets.QLineEdit()
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.text_panel, 3)
layout.addWidget(self.input, 1)
self.setLayout(layout)
self.setWindowTitle("Chatter")
self.input.editingFinished.connect(self.input_changed)
self.input.setFocus()
self.chattery = nw0.discover("chattery/news")
self.responder = FeedbackReader(self.chattery)
self.responder.message_received.connect(self.handle_response)
self.responder.start()
python类QLineEdit()的实例源码
def __init__(self, parent=None):
super(AddressBook, self).__init__(parent)
nameLabel = QLabel("Name:")
self.nameLine = QLineEdit()
addressLabel = QLabel("Address:")
self.addressText = QTextEdit()
mainLayout = QGridLayout()
mainLayout.addWidget(nameLabel, 0, 0)
mainLayout.addWidget(self.nameLine, 0, 1)
mainLayout.addWidget(addressLabel, 1, 0, Qt.AlignTop)
mainLayout.addWidget(self.addressText, 1, 1)
self.setLayout(mainLayout)
self.setWindowTitle("Simple Address Book")
def __init__(self, parent=None):
super(AddressBook, self).__init__(parent)
nameLabel = QLabel("Name:")
self.nameLine = QLineEdit()
addressLabel = QLabel("Address:")
self.addressText = QTextEdit()
mainLayout = QGridLayout()
mainLayout.addWidget(nameLabel, 0, 0)
mainLayout.addWidget(self.nameLine, 0, 1)
mainLayout.addWidget(addressLabel, 1, 0, Qt.AlignTop)
mainLayout.addWidget(self.addressText, 1, 1)
self.setLayout(mainLayout)
self.setWindowTitle("Simple Address Book")
def __init__(self, min_, max_, float_=False):
super(QwordSpinBox, self).__init__()
self._minimum = min_
self._maximum = max_
self.int_ = float if float_ else int
rx = QRegExp('-?\d{0,20}(?:\.\d{0,20})?' if float_ else '-?\d{0,20}')
validator = QRegExpValidator(rx, self)
self._lineEdit = QLineEdit(self)
self._lineEdit.setText(str(self.int_(0)))
self._lineEdit.setValidator(validator)
self._lineEdit.textEdited.connect(partial(self.setValue, change=False))
self.editingFinished.connect(lambda: self.setValue(self.value(), update=False) or True)
self.setLineEdit(self._lineEdit)
def __init__(self, item, name, val, app):
super().__init__(item, [name + ' '])
self.name = name
self.app = app
self.required = '{%s}' % name in self.app.base_url
if not self.required:
self.setCheckState(0, Qt.Checked)
self.last_check_state = Qt.Checked
self.widget = QLineEdit()
self.widget.setFrame(False)
self.widget.setStyleSheet('padding: 1px 0')
self.widget.textEdited.connect(self.value_changed)
self.app.fuzzer.getTree.setItemWidget(self, 1, self.widget)
self.widget.setText(val)
self.value = val
self.widget.setMouseTracking(True)
self.widget.enterEvent = self.edit
def createTopRightGroupBox(self):
self.topRightGroupBox = QGroupBox('Heater')
heatLabel = QLabel('Target Temperature(C):')
heatEntry = QLineEdit()
heatEntry.textChanged[str].connect(self.tempOnChanged)
heatEntry.setText('41')
self.heatButton = QPushButton('Heater ON')
self.heatButton.clicked.connect(self.heaterPower)
hbox1 = QHBoxLayout()
hbox1.addWidget(heatLabel)
hbox1.addWidget(heatEntry)
hbox2 = QHBoxLayout()
hbox2.addWidget(self.heatButton)
layout = QVBoxLayout()
layout.addLayout(hbox1)
layout.addLayout(hbox2)
layout.addStretch(1)
self.topRightGroupBox.setLayout(layout)
def _layout(self):
"""
Create layout.
"""
self._main_layout = QW.QHBoxLayout(self)
if self._input_type is bool:
self._select_widget = QW.QCheckBox()
self._select_widget.stateChanged.connect(self._bool_handler)
self._select_widget.setChecked(self._initial_value)
elif self._input_type is str:
self._select_widget = QW.QLineEdit()
self._select_widget.editingFinished.connect(self._str_handler)
self._select_widget.setText(self._initial_value)
elif self._input_type is int:
self._select_widget = QW.QLineEdit()
self._select_widget.editingFinished.connect(self._int_handler)
self._select_widget.setText(str(self._initial_value))
else:
self._select_widget = QW.QLineEdit()
self._select_widget.editingFinished.connect(self._general_handler)
self._select_widget.setText(str(self._initial_value))
self._main_layout.addWidget(self._select_widget)
def _str_handler(self):
"""
Handler for string values. Parses QLineEdit.
"""
current = self._select_widget.text()
try:
new_value = current.strip()
if new_value == "":
raise ValueError
color = "#FFFFFF"
self._current_value = new_value
self._valid = True
except ValueError:
color = "#FFB6C1"
self._valid = False
self._select_widget.setStyleSheet("QLineEdit {{ background-color: {} }}".format(color))
def _int_handler(self):
"""
Handler for int values. Parses QLineEdit.
"""
current = self._select_widget.text()
try:
# Make sure this scans as a string
if type(ast.literal_eval(current)) != int:
raise ValueError
new_value = int(current)
color = "#FFFFFF"
self._current_value = new_value
self._valid = True
except ValueError:
color = "#FFB6C1"
self._valid = False
self._select_widget.setStyleSheet("QLineEdit {{ background-color: {} }}".format(color))
def __init__(self,parent,fit,experiment,fit_param,float_view_cutoff=100000.):
"""
Initialize the class.
parent: parent widget
fit: FitContainer object
experiment: pytc.ITCExperiment instance
fit_param: pytc.FitParameter instance to wrap
float_view_cutoff: how to show floats in QLineEdit boxes
"""
super().__init__()
self._parent = parent
self._fit = fit
self._experiment = experiment
self._p = fit_param
self._float_view_cutoff = float_view_cutoff
self._is_connector_param = False
self._is_connected = False
self.layout()
def _lower_handler(self):
"""
Handle lower bound entries. Turn pink of the value is bad.
"""
success = True
try:
value = float(self._lower.text())
if value > self._p.guess:
raise ValueError
except ValueError:
success = False
if success:
color = "#FFFFFF"
else:
color = "#FFB6C1"
self._lower.setStyleSheet("QLineEdit {{ background-color: {} }}".format(color))
if success:
self._p.bounds = [value,self._p.bounds[1]]
self._current_lower = value
self._fit.emit_changed()
def _upper_handler(self):
"""
Handle upper bound entries. Turn pink of the value is bad.
"""
success = True
try:
value = float(self._upper.text())
if value < self._p.guess:
raise ValueError
except ValueError:
success = False
if success:
color = "#FFFFFF"
else:
color = "#FFB6C1"
self._upper.setStyleSheet("QLineEdit {{ background-color: {} }}".format(color))
if success:
self._p.bounds = [self._p.bounds[0],value]
self._current_upper = value
self._fit.emit_changed()
def _general_handler(self):
"""
Handler for other values (str, float, int most likely). Parses
QLineEdit.
"""
current = self._select_widget.text()
try:
new_value = self._value_type(current)
color = "#FFFFFF"
self._fit.set_experiment_attr(self._experiment,self._settable_name, new_value,purge_fit=True)
self._current_value = new_value
except ValueError:
color = "#FFB6C1"
self._select_widget.setStyleSheet("QLineEdit {{ background-color: {} }}".format(color))
def _widget_checker(self):
"""
Make sure widgets are good, turning bad widgets pink.
"""
for k in self._arg_widgets.keys():
caster = self._arg_types[k]
if caster == bool:
continue
try:
value = caster(self._arg_widgets[k].text())
if type(value) is str and value.strip() == "":
raise ValueError
color = "#FFFFFF"
except ValueError:
color = "#FFB6C1"
self._arg_widgets[k].setStyleSheet("QLineEdit {{ background-color: {} }}".format(color))
def layout(self):
"""
Create layout.
"""
self._main_layout = QW.QHBoxLayout(self)
self._label = QW.QLabel(self._meta_name)
self._meta = QW.QLineEdit()
self._meta.textChanged.connect(self._meta_handler)
self._meta.editingFinished.connect(self._meta_handler)
self._main_layout.addWidget(self._label)
self._main_layout.addWidget(self._meta)
# Load in parameters from FitParameter object
self.update()
def update(self):
"""
Update the widgets.
"""
value = getattr(self._experiment,self._meta_name)
if value != self._current_value:
try:
if value < 1/self._float_view_cutoff or value > self._float_view_cutoff:
value_str = "{:.8e}".format(value)
else:
value_str = "{:.8f}".format(value)
self._meta.setText(value_str)
except TypeError:
self._meta.setText("")
color = "#FFFFFF"
self._meta.setStyleSheet("QLineEdit {{ background-color: {} }}".format(color))
def layout(self):
"""
Populate the window.
"""
self._main_layout = QW.QVBoxLayout(self)
self._form_layout = QW.QFormLayout()
# Input box holding name
self._global_var_input = QW.QLineEdit(self)
self._global_var_input.setText("global")
self._global_var_input.editingFinished.connect(self._check_name)
# Final OK button
self._OK_button = QW.QPushButton("OK", self)
self._OK_button.clicked.connect(self._ok_button_handler)
# Add to form
self._form_layout.addRow(QW.QLabel("New Global Variable:"), self._global_var_input)
# add to main layout
self._main_layout.addLayout(self._form_layout)
self._main_layout.addWidget(self._OK_button)
self.setWindowTitle("Add new global variable")
def choosePathButton(self):
sender = self.sender()
if sender.objectName() == "pushButton_mediainfo_path":
lineEdit = self.findChild(QLineEdit, "lineEdit_mediainfo_path")
exe_name = "mediainfo"
elif sender.objectName() == "pushButton_mp3guessenc_path":
lineEdit = self.findChild(QLineEdit, "lineEdit_mp3guessenc_path")
exe_name = "mp3guessenc"
elif sender.objectName() == "pushButton_sox_path":
lineEdit = self.findChild(QLineEdit, "lineEdit_sox_path")
exe_name = "sox"
elif sender.objectName() == "pushButton_ffprobe_path":
lineEdit = self.findChild(QLineEdit, "lineEdit_ffprobe_path")
exe_name = "ffprobe"
elif sender.objectName() == "pushButton_aucdtect_path":
lineEdit = self.findChild(QLineEdit, "lineEdit_aucdtect_path")
exe_name = "aucdtect"
if lineEdit is not None:
path = lineEdit.text()
file = str(QFileDialog.getOpenFileName(parent=self, caption=self.tr("Browse to")+" {} ".format(exe_name)+self.tr("executable file"),
directory=path)[0])
if not file == "":
lineEdit.setText(file)
def __init__(self, parent=None):
super().__init__(parent)
self.path_edit = QtWidgets.QLineEdit()
self.registerField('dirpath*', self.path_edit)
self.browse_button = QtWidgets.QPushButton('Browse')
self.browse_button.clicked.connect(self.get_directory)
layout = QtWidgets.QVBoxLayout()
layout.addWidget(QtWidgets.QLabel(
'Choose location of existing ecospold2 directory:'))
layout.addWidget(self.path_edit)
browse_lay = QtWidgets.QHBoxLayout()
browse_lay.addWidget(self.browse_button)
browse_lay.addStretch(1)
layout.addLayout(browse_lay)
self.setLayout(layout)
def __init__(self, parent=None):
super().__init__(parent)
self.wizard = self.parent()
self.path_edit = QtWidgets.QLineEdit()
self.registerField('archivepath*', self.path_edit)
self.browse_button = QtWidgets.QPushButton('Browse')
self.browse_button.clicked.connect(self.get_archive)
layout = QtWidgets.QVBoxLayout()
layout.addWidget(QtWidgets.QLabel(
'Choose location of 7z archive:'))
layout.addWidget(self.path_edit)
browse_lay = QtWidgets.QHBoxLayout()
browse_lay.addWidget(self.browse_button)
browse_lay.addStretch(1)
layout.addLayout(browse_lay)
self.setLayout(layout)
def __init__(self, parent=None):
super().__init__(parent)
self.wizard = self.parent()
self.complete = False
self.description_label = QtWidgets.QLabel('Login to the ecoinvent homepage:')
self.username_edit = QtWidgets.QLineEdit()
self.username_edit.setPlaceholderText('ecoinvent username')
self.password_edit = QtWidgets.QLineEdit()
self.password_edit.setPlaceholderText('ecoinvent password'),
self.password_edit.setEchoMode(QtWidgets.QLineEdit.Password)
self.login_button = QtWidgets.QPushButton('login')
self.login_button.clicked.connect(self.login)
self.login_button.setCheckable(True)
self.password_edit.returnPressed.connect(self.login_button.click)
self.success_label = QtWidgets.QLabel('')
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.description_label)
layout.addWidget(self.username_edit)
layout.addWidget(self.password_edit)
hlay = QtWidgets.QHBoxLayout()
hlay.addWidget(self.login_button)
hlay.addStretch(1)
layout.addLayout(hlay)
layout.addWidget(self.success_label)
self.setLayout(layout)
def __init__( self, app, parent, url, realm ):
super().__init__( parent )
self.setWindowTitle( T_('Mercurial Credentials - %s') % (' '.join( app.app_name_parts ),) )
self.username = QtWidgets.QLineEdit( '' )
self.password = QtWidgets.QLineEdit()
self.password.setEchoMode( self.password.Password )
self.username.textChanged.connect( self.nameTextChanged )
self.password.textChanged.connect( self.nameTextChanged )
em = self.fontMetrics().width( 'M' )
self.addRow( T_('URL'), url )
self.addRow( T_('Realm'), realm )
self.addRow( T_('Username'), self.username, min_width=50*em )
self.addRow( T_('Password'), self.password )
self.addButtons()
def __init__( self, app ):
super().__init__( app, T_('Hg') )
self.prefs = self.app.prefs.hg
#------------------------------------------------------------
self.hg_program = QtWidgets.QLineEdit()
if self.prefs.program is not None:
self.hg_program.setText( str(self.prefs.program) )
else:
# show the default
self.hg_program.setText( hglib.HGPATH )
self.browse_program = QtWidgets.QPushButton( T_('Browse...') )
self.browse_program.clicked.connect( self.__pickProgram )
#------------------------------------------------------------
self.addRow( T_('Hg Program'), self.hg_program, self.browse_program )
def __init__( self, app ):
super().__init__( app, T_('Git') )
self.prefs = self.app.prefs.git
#------------------------------------------------------------
self.git_program = QtWidgets.QLineEdit()
if self.prefs.program is not None:
self.git_program.setText( str(self.prefs.program) )
else:
# show the default
self.git_program.setText( git.Git.GIT_PYTHON_GIT_EXECUTABLE )
self.browse_program = QtWidgets.QPushButton( T_('Browse...') )
self.browse_program.clicked.connect( self.__pickProgram )
self.addRow( T_('Git Program'), self.git_program, self.browse_program )
def __init__( self, app, parent ):
self.app = app
super().__init__( parent )
self.setWindowTitle( T_('Git Credentials - %s') % (' '.join( app.app_name_parts ),) )
self.url = QtWidgets.QLabel()
self.username = QtWidgets.QLineEdit()
self.password = QtWidgets.QLineEdit()
self.password.setEchoMode( self.password.Password )
self.username.textChanged.connect( self.nameTextChanged )
self.password.textChanged.connect( self.nameTextChanged )
em = self.fontMetrics().width( 'M' )
self.addRow( T_('URL'), self.url )
self.addRow( T_('Username'), self.username, min_width=50*em )
self.addRow( T_('Password'), self.password )
self.addButtons()
def addRow( self, label, value ):
value = str(value)
label_ctrl = QtWidgets.QLabel( label )
label_ctrl.setAlignment( QtCore.Qt.AlignRight )
if '\n' in value:
value_ctrl = QtWidgets.QPlainTextEdit()
else:
value_ctrl = QtWidgets.QLineEdit()
value_ctrl.setMinimumWidth( 600 )
value_ctrl.setReadOnly( True )
value_ctrl.setText( value )
row = self.grid.rowCount()
self.grid.addWidget( label_ctrl, row, 0 )
self.grid.addWidget( value_ctrl, row, 1 )
def __init__( self, app ):
super().__init__( app, T_('Projects') )
if self.app is None:
self.prefs = None
else:
self.prefs = self.app.prefs.projects_defaults
self.new_projects_folder = QtWidgets.QLineEdit()
if self.prefs.new_projects_folder is not None:
self.new_projects_folder.setText( str(self.prefs.new_projects_folder) )
else: # show the default
self.new_projects_folder.setText( str(wb_platform_specific.getHomeFolder()) )
self.browse_folder = QtWidgets.QPushButton( T_('Browse...') )
self.browse_folder.clicked.connect( self.__pickFolder )
self.addRow( T_('New projects folder'), self.new_projects_folder, self.browse_folder )
def __init__( self, app ):
super().__init__( app, T_('Shell') )
if self.app is None:
self.prefs = None
else:
self.prefs = self.app.prefs.shell
terminal_program_list = wb_shell_commands.getTerminalProgramList()
file_browser_program_list = wb_shell_commands.getFileBrowserProgramList()
self.terminal_program = QtWidgets.QComboBox()
self.terminal_program.addItems( terminal_program_list )
self.terminal_init = QtWidgets.QLineEdit( '' )
self.file_browser_program = QtWidgets.QComboBox()
self.file_browser_program.addItems( file_browser_program_list )
if self.prefs is not None:
self.terminal_program.setCurrentText( self.prefs.terminal_program )
self.terminal_init.setText( self.prefs.terminal_init )
self.file_browser_program.setCurrentText( self.prefs.file_browser )
self.addRow( T_('Terminal Program'), self.terminal_program )
self.addRow( T_('Terminal Init Command'), self.terminal_init )
self.addRow( T_('File Browser Program'), self.file_browser_program )
def __init__( self, app, parent ):
self.app = app
super().__init__( parent )
self.setWindowTitle( T_('Rename - %s') % (' '.join( app.app_name_parts ),) )
self.old_name = None
self.name = QtWidgets.QLineEdit()
self.name.textChanged.connect( self.nameTextChanged )
self.ok_button.setEnabled( False )
em = self.fontMetrics().width( 'M' )
self.addRow( T_('Name'), self.name, min_width=em*80 )
self.addButtons()
def __init__( self, app, parent_win, title, name=None ):
super().__init__( parent_win )
self.name = name # used for debug
self.text_file_name = QtWidgets.QLineEdit()
self.text_file_name.setText( title )
self.text_file_name.setReadOnly( True )
self.ed = DiffBodyText( app, self, name=self.name )
v_layout = QtWidgets.QBoxLayout( QtWidgets.QBoxLayout.LeftToRight )
v_layout.addWidget( self.ed.diff_line_numbers )
v_layout.addWidget( self.ed )
h_layout = QtWidgets.QBoxLayout( QtWidgets.QBoxLayout.TopToBottom )
h_layout.addWidget( self.text_file_name )
h_layout.addLayout( v_layout )
self.setLayout( h_layout )