def _createCompleterModel(self, completionPrefix): """ Creates a QStandardModel that holds the suggestion from the completion models for the QCompleter :param completionPrefix: """ # build the completion model cc_model = QStandardItemModel() cptSuggestion = 0 displayedTexts = [] self.__tooltips.clear() for model in self._models: for s in model.suggestions: # skip redundant completion if s.display != completionPrefix and \ not s.display in displayedTexts: displayedTexts.append(s.display) items = [] item = QStandardItem() items.append(item) item.setData(s.display, Qt.DisplayRole) if s.description is not None: self.__tooltips[s.display] = s.description if s.decoration is not None: item.setData(QIcon(s.decoration), Qt.DecorationRole) cc_model.appendRow(items) cptSuggestion += 1 # do we need to use more completion model? if cptSuggestion >= self.minSuggestions: break # enough suggestions return cc_model, cptSuggestion
def addLinkMan(self,linkMan,status): '''添加联系人''' itemLinkMan=QStandardItem() itemLinkMan.setData(linkMan,QtCore.Qt.DisplayRole) itemLinkManStatus=QStandardItem() itemLinkManStatus.setData(status,QtCore.Qt.DisplayRole) self.itemFriend.appendRow([itemLinkMan,itemLinkManStatus])
def get_song_item(song): item = QStandardItem() item.setData(song.track_info['title'], ModelToItemStrat.TRACK_TITLE) item.setData(song.track_info['artist'], ModelToItemStrat.ARTIST) item.setData(song.track_info['album'], ModelToItemStrat.ALBUM) item.setData(song, ModelToItemStrat.FILTER) item.setData(song, ModelToItemStrat.PLAY) item.setText(song.track_info['title']) return item
def _on_level_selected_changed(self, index): level_name = self.mClassList.itemData(index) level = self.levels_dict[level_name] model = QStandardItemModel() for verb in level.verbs_list: item = QStandardItem(verb.base_verbal) item.setData(verb.base_verbal) model.appendRow(item) self.mVerbsList.setModel(model)
def get_album_item(album): if not album: return get_album_sorts item = QStandardItem() item.setData(album.title, ModelToItemStrat.ALBUM) item.setData(album.songs[0].track_info['date'], ModelToItemStrat.DATE) item.setData(album.artist.name, ModelToItemStrat.ARTIST) item.setData(album, ModelToItemStrat.FILTER) item.setData(album, ModelToItemStrat.PLAY) item.setText(album.title) item.setSizeHint(QSize(128,148)) album.item = item return item
def _search_results_to_array(self,search_results): array = [] for res in search_results: # mainlog.debug("_search_results_to_array {}".format(res.creation_date)) i = QStandardItem(res.preorder_part_label) row = [i, QStandardItem(res.accounting_part_label), QStandardItem(res.customer_order_name), QStandardItem(res.fullname)] if 'order_part_id' in res.__dict__: # It's an order part i.setData( res.order_part_id, Qt.UserRole) i.setData( 'order_part', Qt.UserRole+1) row.append( QStandardItem(res.description)) else: # It's an order i.setData( res.order_id, Qt.UserRole) i.setData( 'order', Qt.UserRole+1) row.append( QStandardItem()) array.append(row) return array
def get_album_item(album): item = QStandardItem() item.setData(album.title, ModelToItemStrat.ALBUM) item.setData(album.artist.name, ModelToItemStrat.ARTIST) item.setData(album, ModelToItemStrat.FILTER) item.setData(album, ModelToItemStrat.PLAY) item.setText(album.title) item.setSizeHint(QSize(128,148)) return item
def get_artist_item(artist): if not artist: return get_artist_sorts item = QStandardItem() item.setData(artist.name, ModelToItemStrat.ARTIST) item.setData(artist, ModelToItemStrat.FILTER) item.setData(artist, ModelToItemStrat.PLAY) item.setText(artist.name) artist.item = item return item
def setData(self,data): """ data = [ (role, role.description, role active or not (True or False, not None)) ] """ m = QStandardItemModel(len(data),2) row = 0 for d in data: item = QStandardItem() item.setData(d[2],Qt.EditRole) m.setItem(row,0,item) item = QStandardItem() item.setData(d[0],Qt.UserRole) item.setData(d[1],Qt.DisplayRole) m.setItem(row,1,item) row += 1 self.setModel(m) self.resizeColumnsToContents()
class client(QMainWindow): def __init__(self,parent= None): # QMainWindow.__init__(self) super(client, self).__init__(parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.userModel = QStandardItemModel() self.itemHeadFriend=QStandardItem() self.itemHeadFriend.setData("linkMan",QtCore.Qt.DisplayRole) self.itemHeadStatis=QStandardItem() self.itemHeadStatis.setData("status",QtCore.Qt.DisplayRole) self.userModel.setHorizontalHeaderItem(0,self.itemHeadFriend) self.userModel.setHorizontalHeaderItem(1,self.itemHeadStatis) self.itemFriend=QStandardItem() self.itemFriend.setData("friend",QtCore.Qt.DisplayRole) self.userModel.insertRow(0,self.itemFriend) self.ui.linkManTreeView.setModel(self.userModel) self.connecting=None QtCore.QObject.connect(self.ui.linkManTreeView, QtCore.SIGNAL("clicked(QModelIndex)"), self,QtCore.SLOT("createMessageFrame(QModelIndex)")) self.messageFrame={} def addLinkMan(self,linkMan,status): '''添加联系人''' itemLinkMan=QStandardItem() itemLinkMan.setData(linkMan,QtCore.Qt.DisplayRole) itemLinkManStatus=QStandardItem() itemLinkManStatus.setData(status,QtCore.Qt.DisplayRole) self.itemFriend.appendRow([itemLinkMan,itemLinkManStatus]) def createTempMessageFrame(self,user,friend): uiDebug(self.messageFrame) if self.messageFrame.has_key(friend): self.messageFrame[friend].show() else: try: frame = messageWin(self,user,friend) frame.setWindowTitle(friend) self.messageFrame[friend]=frame frame.show() #pylint: disable=W0702 except: pass uiDebug("mainPanelUi createMessageFrame()") def createMessageFrame(self,QModelIndex): '''创建对话窗口''' friend= self.userModel.data(QModelIndex) if self.userModel.indexFromItem(self.itemFriend) == QModelIndex: return if friend == "": return if friend == "inline": return uiDebug(self.messageFrame) if self.messageFrame.has_key(friend): self.messageFrame[friend].show() else: try: frame = messageWin(self,self.user,friend) frame.setWindowTitle(friend) self.messageFrame[friend]=frame frame.show() #pylint: disable=W0702 except: pass uiDebug("mainPanelUi createMessageFrame()")
def get_artist_item(artist): item = QStandardItem() item.setData(artist, ModelToItemStrat.FILTER) item.setData(artist, ModelToItemStrat.PLAY) item.setText(artist.name) return item