本文整理汇总了Python中PyQt5.Qt.QStringListModel类的典型用法代码示例。如果您正苦于以下问题:Python QStringListModel类的具体用法?Python QStringListModel怎么用?Python QStringListModel使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QStringListModel类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_line_search
def create_line_search(self, hostnames_list):
"""
Add all hosts to QLineEdit and set QCompleter
:param hostnames_list: list of host names
:type hostnames_list: list
"""
# Get QStringListModel
model = self.completer.model()
if not model:
model = QStringListModel()
model.setStringList(hostnames_list)
# Configure QCompleter from model
self.completer.setFilterMode(Qt.MatchContains)
self.completer.setCaseSensitivity(Qt.CaseInsensitive)
self.completer.setModel(model)
self.completer.popup().setObjectName('popup')
# Add completer to QLineEdit
self.line_search.setCompleter(self.completer)
self.line_search.setPlaceholderText(_('Type a host name to display its data'))
self.line_search.setToolTip(_('Type a host name to display its data'))
示例2: RichTextDelegate
class RichTextDelegate(QStyledItemDelegate): # {{{
def __init__(self, parent=None, max_width=160):
QStyledItemDelegate.__init__(self, parent)
self.max_width = max_width
self.dummy_model = QStringListModel([' '], self)
self.dummy_index = self.dummy_model.index(0)
def to_doc(self, index, option=None):
doc = QTextDocument()
if option is not None and option.state & QStyle.State_Selected:
p = option.palette
group = (p.Active if option.state & QStyle.State_Active else
p.Inactive)
c = p.color(group, p.HighlightedText)
c = 'rgb(%d, %d, %d)'%c.getRgb()[:3]
doc.setDefaultStyleSheet(' * { color: %s }'%c)
doc.setHtml(index.data() or '')
return doc
def sizeHint(self, option, index):
doc = self.to_doc(index, option=option)
ans = doc.size().toSize()
if ans.width() > self.max_width - 10:
ans.setWidth(self.max_width)
ans.setHeight(ans.height()+10)
return ans
def paint(self, painter, option, index):
QStyledItemDelegate.paint(self, painter, option, self.dummy_index)
painter.save()
painter.setClipRect(QRectF(option.rect))
painter.translate(option.rect.topLeft())
self.to_doc(index, option).drawContents(painter)
painter.restore()
示例3: Delegate
class Delegate(QStyledItemDelegate):
def __init__(self, parent=None):
QStyledItemDelegate.__init__(self, parent)
self._m = QStringListModel(['sdfgkjsg sopgjs gsgs slgjslg sdklgsgl', ''])
def sizeHint(self, option, index):
ans = QStyledItemDelegate.sizeHint(self, option, self._m.index(0))
index.data(Qt.UserRole).adjust_size_hint(option, ans)
return ans
def paint(self, painter, option, index):
QStyledItemDelegate.paint(self, painter, option, self._m.index(1))
painter.save()
parent = self.parent() or QApplication.instance()
style = parent.style()
try:
index.data(Qt.UserRole).draw_item(painter, style, option)
finally:
painter.restore()
示例4: __init__
def __init__(self, current_family, parent=None):
QDialog.__init__(self, parent)
self.setWindowTitle(_('Choose font family'))
self.setWindowIcon(QIcon(I('font.png')))
from calibre.utils.fonts.scanner import font_scanner
self.font_scanner = font_scanner
self.m = QStringListModel(self)
self.build_font_list()
self.l = l = QGridLayout()
self.setLayout(l)
self.view = FontsView(self)
self.view.setModel(self.m)
self.view.setCurrentIndex(self.m.index(0))
if current_family:
for i, val in enumerate(self.families):
if icu_lower(val) == icu_lower(current_family):
self.view.setCurrentIndex(self.m.index(i))
break
self.view.doubleClicked.connect(self.accept, type=Qt.QueuedConnection)
self.view.changed.connect(self.current_changed,
type=Qt.QueuedConnection)
self.faces = Typefaces(self)
self.bb = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel)
self.bb.accepted.connect(self.accept)
self.bb.rejected.connect(self.reject)
self.add_fonts_button = afb = self.bb.addButton(_('Add &fonts'),
self.bb.ActionRole)
afb.setIcon(QIcon(I('plus.png')))
afb.clicked.connect(self.add_fonts)
self.ml = QLabel(_('Choose a font family from the list below:'))
self.search = QLineEdit(self)
self.search.setPlaceholderText(_('Search'))
self.search.returnPressed.connect(self.find)
self.nb = QToolButton(self)
self.nb.setIcon(QIcon(I('arrow-down.png')))
self.nb.setToolTip(_('Find next'))
self.pb = QToolButton(self)
self.pb.setIcon(QIcon(I('arrow-up.png')))
self.pb.setToolTip(_('Find previous'))
self.nb.clicked.connect(self.find_next)
self.pb.clicked.connect(self.find_previous)
l.addWidget(self.ml, 0, 0, 1, 4)
l.addWidget(self.search, 1, 0, 1, 1)
l.addWidget(self.nb, 1, 1, 1, 1)
l.addWidget(self.pb, 1, 2, 1, 1)
l.addWidget(self.view, 2, 0, 1, 3)
l.addWidget(self.faces, 1, 3, 2, 1)
l.addWidget(self.bb, 3, 0, 1, 4)
l.setAlignment(self.faces, Qt.AlignTop)
self.resize(800, 600)
示例5: FontFamilyDialog
class FontFamilyDialog(QDialog):
def __init__(self, current_family, parent=None):
QDialog.__init__(self, parent)
self.setWindowTitle(_('Choose font family'))
self.setWindowIcon(QIcon(I('font.png')))
from calibre.utils.fonts.scanner import font_scanner
self.font_scanner = font_scanner
self.m = QStringListModel(self)
self.build_font_list()
self.l = l = QGridLayout()
self.setLayout(l)
self.view = FontsView(self)
self.view.setModel(self.m)
self.view.setCurrentIndex(self.m.index(0))
if current_family:
for i, val in enumerate(self.families):
if icu_lower(val) == icu_lower(current_family):
self.view.setCurrentIndex(self.m.index(i))
break
self.view.doubleClicked.connect(self.accept, type=Qt.QueuedConnection)
self.view.changed.connect(self.current_changed,
type=Qt.QueuedConnection)
self.faces = Typefaces(self)
self.bb = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel)
self.bb.accepted.connect(self.accept)
self.bb.rejected.connect(self.reject)
self.add_fonts_button = afb = self.bb.addButton(_('Add &fonts'),
self.bb.ActionRole)
afb.setIcon(QIcon(I('plus.png')))
afb.clicked.connect(self.add_fonts)
self.ml = QLabel(_('Choose a font family from the list below:'))
self.search = QLineEdit(self)
self.search.setPlaceholderText(_('Search'))
self.search.returnPressed.connect(self.find)
self.nb = QToolButton(self)
self.nb.setIcon(QIcon(I('arrow-down.png')))
self.nb.setToolTip(_('Find next'))
self.pb = QToolButton(self)
self.pb.setIcon(QIcon(I('arrow-up.png')))
self.pb.setToolTip(_('Find previous'))
self.nb.clicked.connect(self.find_next)
self.pb.clicked.connect(self.find_previous)
l.addWidget(self.ml, 0, 0, 1, 4)
l.addWidget(self.search, 1, 0, 1, 1)
l.addWidget(self.nb, 1, 1, 1, 1)
l.addWidget(self.pb, 1, 2, 1, 1)
l.addWidget(self.view, 2, 0, 1, 3)
l.addWidget(self.faces, 1, 3, 2, 1)
l.addWidget(self.bb, 3, 0, 1, 4)
l.setAlignment(self.faces, Qt.AlignTop)
self.resize(800, 600)
def set_current(self, i):
self.view.setCurrentIndex(self.m.index(i))
def keyPressEvent(self, e):
if e.key() == Qt.Key_Return:
return
return QDialog.keyPressEvent(self, e)
def find(self, backwards=False):
i = self.view.currentIndex().row()
if i < 0:
i = 0
q = icu_lower(unicode(self.search.text())).strip()
if not q:
return
r = (xrange(i-1, -1, -1) if backwards else xrange(i+1,
len(self.families)))
for j in r:
f = self.families[j]
if q in icu_lower(f):
self.set_current(j)
return
def find_next(self):
self.find()
def find_previous(self):
self.find(backwards=True)
def build_font_list(self):
try:
self.families = list(self.font_scanner.find_font_families())
except:
self.families = []
print ('WARNING: Could not load fonts')
import traceback
traceback.print_exc()
self.families.insert(0, _('None'))
self.m.setStringList(self.families)
def add_fonts(self):
families = add_fonts(self)
if not families:
return
#.........这里部分代码省略.........
示例6: __init__
def __init__(self, parent=None, max_width=160):
QStyledItemDelegate.__init__(self, parent)
self.max_width = max_width
self.dummy_model = QStringListModel([' '], self)
self.dummy_index = self.dummy_model.index(0)
示例7: data
def data(self, index, role):
if role == Qt.DecorationRole:
w = self.widgets[index.row()]
if w.ICON:
return (QIcon(w.ICON))
return QStringListModel.data(self, index, role)
示例8: __init__
def __init__(self, widgets):
QStringListModel.__init__(self)
self.widgets = widgets
self.setStringList([w.TITLE for w in widgets])
示例9: __init__
def __init__(self, gui, icon, do_user_config):
QDialog.__init__(self, gui)
self.gui = gui
self.do_user_config = do_user_config
self.db = gui.current_db.new_api
# The model for the book list
self.model = OpdsBooksModel(None, self.dummy_books(), self.db)
self.searchproxymodel = QSortFilterProxyModel(self)
self.searchproxymodel.setFilterCaseSensitivity(Qt.CaseInsensitive)
self.searchproxymodel.setFilterKeyColumn(-1)
self.searchproxymodel.setSourceModel(self.model)
self.layout = QGridLayout()
self.setLayout(self.layout)
self.setWindowTitle('OPDS Client')
self.setWindowIcon(icon)
labelColumnWidths = []
self.opdsUrlLabel = QLabel('OPDS URL: ')
self.layout.addWidget(self.opdsUrlLabel, 0, 0)
labelColumnWidths.append(self.layout.itemAtPosition(0, 0).sizeHint().width())
config.convertSingleStringOpdsUrlPreferenceToListOfStringsPreference()
self.opdsUrlEditor = QComboBox(self)
self.opdsUrlEditor.activated.connect(self.opdsUrlEditorActivated)
self.opdsUrlEditor.addItems(prefs['opds_url'])
self.opdsUrlEditor.setEditable(True)
self.opdsUrlEditor.setInsertPolicy(QComboBox.InsertAtTop)
self.layout.addWidget(self.opdsUrlEditor, 0, 1, 1, 3)
self.opdsUrlLabel.setBuddy(self.opdsUrlEditor)
buttonColumnNumber = 7
buttonColumnWidths = []
self.about_button = QPushButton('About', self)
self.about_button.setAutoDefault(False)
self.about_button.clicked.connect(self.about)
self.layout.addWidget(self.about_button, 0, buttonColumnNumber)
buttonColumnWidths.append(self.layout.itemAtPosition(0, buttonColumnNumber).sizeHint().width())
# Initially download the catalogs found in the root catalog of the URL
# selected at startup. Fail quietly on failing to open the URL
catalogsTuple = self.model.downloadOpdsRootCatalog(self.gui, self.opdsUrlEditor.currentText(), False)
print catalogsTuple
firstCatalogTitle = catalogsTuple[0]
self.currentOpdsCatalogs = catalogsTuple[1] # A dictionary of title->feedURL
self.opdsCatalogSelectorLabel = QLabel('OPDS Catalog:')
self.layout.addWidget(self.opdsCatalogSelectorLabel, 1, 0)
labelColumnWidths.append(self.layout.itemAtPosition(1, 0).sizeHint().width())
self.opdsCatalogSelector = QComboBox(self)
self.opdsCatalogSelector.setEditable(False)
self.opdsCatalogSelectorModel = QStringListModel(self.currentOpdsCatalogs.keys())
self.opdsCatalogSelector.setModel(self.opdsCatalogSelectorModel)
self.opdsCatalogSelector.setCurrentText(firstCatalogTitle)
self.layout.addWidget(self.opdsCatalogSelector, 1, 1, 1, 3)
self.download_opds_button = QPushButton('Download OPDS', self)
self.download_opds_button.setAutoDefault(False)
self.download_opds_button.clicked.connect(self.download_opds)
self.layout.addWidget(self.download_opds_button, 1, buttonColumnNumber)
buttonColumnWidths.append(self.layout.itemAtPosition(1, buttonColumnNumber).sizeHint().width())
# Search GUI
self.searchEditor = QLineEdit(self)
self.searchEditor.returnPressed.connect(self.searchBookList)
self.layout.addWidget(self.searchEditor, 2, buttonColumnNumber - 2, 1, 2)
self.searchButton = QPushButton('Search', self)
self.searchButton.setAutoDefault(False)
self.searchButton.clicked.connect(self.searchBookList)
self.layout.addWidget(self.searchButton, 2, buttonColumnNumber)
buttonColumnWidths.append(self.layout.itemAtPosition(2, buttonColumnNumber).sizeHint().width())
# The main book list
self.library_view = QTableView(self)
self.library_view.setAlternatingRowColors(True)
self.library_view.setModel(self.searchproxymodel)
self.library_view.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
self.library_view.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
self.library_view.horizontalHeader().setSectionResizeMode(2, QHeaderView.Stretch)
self.library_view.setSelectionBehavior(QAbstractItemView.SelectRows)
self.resizeAllLibraryViewLinesToHeaderHeight()
self.library_view.resizeColumnsToContents()
self.layout.addWidget(self.library_view, 3, 0, 3, buttonColumnNumber + 1)
self.hideNewsCheckbox = QCheckBox('Hide Newspapers', self)
self.hideNewsCheckbox.clicked.connect(self.setHideNewspapers)
self.hideNewsCheckbox.setChecked(prefs['hideNewspapers'])
self.layout.addWidget(self.hideNewsCheckbox, 6, 0, 1, 3)
self.hideBooksAlreadyInLibraryCheckbox = QCheckBox('Hide books already in library', self)
self.hideBooksAlreadyInLibraryCheckbox.clicked.connect(self.setHideBooksAlreadyInLibrary)
self.hideBooksAlreadyInLibraryCheckbox.setChecked(prefs['hideBooksAlreadyInLibrary'])
self.layout.addWidget(self.hideBooksAlreadyInLibraryCheckbox, 7, 0, 1, 3)
#.........这里部分代码省略.........
示例10: OpdsDialog
class OpdsDialog(QDialog):
def __init__(self, gui, icon, do_user_config):
QDialog.__init__(self, gui)
self.gui = gui
self.do_user_config = do_user_config
self.db = gui.current_db.new_api
# The model for the book list
self.model = OpdsBooksModel(None, self.dummy_books(), self.db)
self.searchproxymodel = QSortFilterProxyModel(self)
self.searchproxymodel.setFilterCaseSensitivity(Qt.CaseInsensitive)
self.searchproxymodel.setFilterKeyColumn(-1)
self.searchproxymodel.setSourceModel(self.model)
self.layout = QGridLayout()
self.setLayout(self.layout)
self.setWindowTitle('OPDS Client')
self.setWindowIcon(icon)
labelColumnWidths = []
self.opdsUrlLabel = QLabel('OPDS URL: ')
self.layout.addWidget(self.opdsUrlLabel, 0, 0)
labelColumnWidths.append(self.layout.itemAtPosition(0, 0).sizeHint().width())
config.convertSingleStringOpdsUrlPreferenceToListOfStringsPreference()
self.opdsUrlEditor = QComboBox(self)
self.opdsUrlEditor.activated.connect(self.opdsUrlEditorActivated)
self.opdsUrlEditor.addItems(prefs['opds_url'])
self.opdsUrlEditor.setEditable(True)
self.opdsUrlEditor.setInsertPolicy(QComboBox.InsertAtTop)
self.layout.addWidget(self.opdsUrlEditor, 0, 1, 1, 3)
self.opdsUrlLabel.setBuddy(self.opdsUrlEditor)
buttonColumnNumber = 7
buttonColumnWidths = []
self.about_button = QPushButton('About', self)
self.about_button.setAutoDefault(False)
self.about_button.clicked.connect(self.about)
self.layout.addWidget(self.about_button, 0, buttonColumnNumber)
buttonColumnWidths.append(self.layout.itemAtPosition(0, buttonColumnNumber).sizeHint().width())
# Initially download the catalogs found in the root catalog of the URL
# selected at startup. Fail quietly on failing to open the URL
catalogsTuple = self.model.downloadOpdsRootCatalog(self.gui, self.opdsUrlEditor.currentText(), False)
print catalogsTuple
firstCatalogTitle = catalogsTuple[0]
self.currentOpdsCatalogs = catalogsTuple[1] # A dictionary of title->feedURL
self.opdsCatalogSelectorLabel = QLabel('OPDS Catalog:')
self.layout.addWidget(self.opdsCatalogSelectorLabel, 1, 0)
labelColumnWidths.append(self.layout.itemAtPosition(1, 0).sizeHint().width())
self.opdsCatalogSelector = QComboBox(self)
self.opdsCatalogSelector.setEditable(False)
self.opdsCatalogSelectorModel = QStringListModel(self.currentOpdsCatalogs.keys())
self.opdsCatalogSelector.setModel(self.opdsCatalogSelectorModel)
self.opdsCatalogSelector.setCurrentText(firstCatalogTitle)
self.layout.addWidget(self.opdsCatalogSelector, 1, 1, 1, 3)
self.download_opds_button = QPushButton('Download OPDS', self)
self.download_opds_button.setAutoDefault(False)
self.download_opds_button.clicked.connect(self.download_opds)
self.layout.addWidget(self.download_opds_button, 1, buttonColumnNumber)
buttonColumnWidths.append(self.layout.itemAtPosition(1, buttonColumnNumber).sizeHint().width())
# Search GUI
self.searchEditor = QLineEdit(self)
self.searchEditor.returnPressed.connect(self.searchBookList)
self.layout.addWidget(self.searchEditor, 2, buttonColumnNumber - 2, 1, 2)
self.searchButton = QPushButton('Search', self)
self.searchButton.setAutoDefault(False)
self.searchButton.clicked.connect(self.searchBookList)
self.layout.addWidget(self.searchButton, 2, buttonColumnNumber)
buttonColumnWidths.append(self.layout.itemAtPosition(2, buttonColumnNumber).sizeHint().width())
# The main book list
self.library_view = QTableView(self)
self.library_view.setAlternatingRowColors(True)
self.library_view.setModel(self.searchproxymodel)
self.library_view.horizontalHeader().setSectionResizeMode(0, QHeaderView.Stretch)
self.library_view.horizontalHeader().setSectionResizeMode(1, QHeaderView.Stretch)
self.library_view.horizontalHeader().setSectionResizeMode(2, QHeaderView.Stretch)
self.library_view.setSelectionBehavior(QAbstractItemView.SelectRows)
self.resizeAllLibraryViewLinesToHeaderHeight()
self.library_view.resizeColumnsToContents()
self.layout.addWidget(self.library_view, 3, 0, 3, buttonColumnNumber + 1)
self.hideNewsCheckbox = QCheckBox('Hide Newspapers', self)
self.hideNewsCheckbox.clicked.connect(self.setHideNewspapers)
self.hideNewsCheckbox.setChecked(prefs['hideNewspapers'])
self.layout.addWidget(self.hideNewsCheckbox, 6, 0, 1, 3)
self.hideBooksAlreadyInLibraryCheckbox = QCheckBox('Hide books already in library', self)
self.hideBooksAlreadyInLibraryCheckbox.clicked.connect(self.setHideBooksAlreadyInLibrary)
self.hideBooksAlreadyInLibraryCheckbox.setChecked(prefs['hideBooksAlreadyInLibrary'])
#.........这里部分代码省略.........
示例11: __init__
def __init__(self, parent=None):
QStyledItemDelegate.__init__(self, parent)
self._m = QStringListModel(['sdfgkjsg sopgjs gsgs slgjslg sdklgsgl', ''])