python类QStandardItemModel()的实例源码

pyqt-sqlite.py 文件源码 项目:pyqt-sqlite 作者: mbaser 项目源码 文件源码 阅读 36 收藏 0 点赞 0 评论 0
def __init__(self, *args):
        super(MainWindow, self).__init__(*args)

        QtCore.QCoreApplication.setOrganizationName("mbaser")
        QtCore.QCoreApplication.setOrganizationDomain("foo.org")
        QtCore.QCoreApplication.setApplicationVersion("0.0.1")
        self.current_database = QtSql.QSqlDatabase.addDatabase('QSQLITE')
        self.setupUi(self)
        self.tree_model=QtGui.QStandardItemModel()

        self.treeView.setModel(self.tree_model)
        self.settings=QtCore.QSettings()

        self.recent_files=self.settings.value('recent_files',[])
        self.update_recent_files()
first.py 文件源码 项目:FIRST-plugin-ida 作者: vrtadmin 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def make_model_headers(model, full=True, check_all=True):
            '''
            Set the model horizontal header data
            @param model: the QStandardItemModel which headers should be set

            When full is set to False this mean the headers are for the user
            to review metadata they've created.
            '''
            center_align = ['Rank', 'Similarity', 'i', 'Matches']
            headers = [ ('Function', 'function name'),
                        ('Rank', 'number of times metadata has been applied'),
                        ('Prototype', 'function prototype')]

            if full:
                full_headers = [headers[0]]
                if check_all:
                    full_headers.append(('Matches', 'number of unique matches'))

                full_headers += [
                            headers[1],
                            ('Similarity', 'percent of how similary the match is to the function'),
                            headers[2],
                            ('i', 'full prototype information'),
                            ('Engines', 'engines that matched on this function'),
                            ('i', 'detailed engine information'),
                            ('User', 'creator of the metadata')
                                ]

                headers = full_headers

            i = 0
            for display_name, tooltip in headers:
                item_header = QtGui.QStandardItem(display_name)
                item_header.setToolTip(tooltip)

                if display_name in center_align:
                    item_header.setTextAlignment(Qt.AlignCenter)

                model.setHorizontalHeaderItem(i, item_header)

                i += 1
project.py 文件源码 项目:DGP 作者: DynamicGravitySystems 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def generate_model(self) -> Tuple[QStandardItemModel, QModelIndex]:
        """Generate a Qt Model based on the project structure."""
        model = QStandardItemModel()
        root = model.invisibleRootItem()

        # TODO: Add these icon resources to library or something so they are not loaded every time
        dgs_ico = QIcon('ui/assets/DGSIcon.xpm')
        flt_ico = QIcon('ui/assets/flight_icon.png')

        prj_header = QStandardItem(dgs_ico, "{name}: {path}".format(name=self.name, path=self.projectdir))
        prj_header.setEditable(False)
        fli_header = QStandardItem(flt_ico, "Flights")
        fli_header.setEditable(False)
        # TODO: Add a human readable identifier to flights
        first_flight = None
        for uid, flight in self.flights.items():
            fli_item = QStandardItem(flt_ico, "Flight: {}".format(flight.name))
            if first_flight is None:
                first_flight = fli_item
            fli_item.setToolTip("UUID: {}".format(uid))
            fli_item.setEditable(False)
            fli_item.setData(flight, QtCore.Qt.UserRole)

            gps_path, gps_uid = flight.gps_file
            gps = QStandardItem("GPS: {}".format(gps_uid))
            gps.setToolTip("File Path: {}".format(gps_path))
            gps.setEditable(False)
            gps.setData(gps_uid)  # For future use

            grav_path, grav_uid = flight.gravity_file
            if grav_path is not None:
                _, grav_fname = os.path.split(grav_path)
            else:
                grav_fname = '<None>'
            grav = QStandardItem("Gravity: {}".format(grav_fname))
            grav.setToolTip("File Path: {}".format(grav_path))
            grav.setEditable(False)
            grav.setData(grav_uid)  # For future use

            fli_item.appendRow(gps)
            fli_item.appendRow(grav)

            for line in flight:
                line_item = QStandardItem("Line {}:{}".format(line.start, line.end))
                line_item.setEditable(False)
                fli_item.appendRow(line_item)
            fli_header.appendRow(fli_item)
        prj_header.appendRow(fli_header)

        root.appendRow(prj_header)
        self.log.debug("Tree Model generated")
        first_index = model.indexFromItem(first_flight)
        return model, first_index
DicomBrowser.py 文件源码 项目:DicomBrowser 作者: ericspod 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def fillTagModel(model,dcm,regex=None):
    '''Fill a QStandardItemModel object `model' with a tree derived from tags in `dcm', filtering by pattern `regex'.'''
    try:
        regex=re.compile(str(regex),re.DOTALL)
    except:
        regex='' # no regex or bad pattern

    def _datasetToItem(parent,d):
        '''Add every element in `d' to the QStandardItem object `parent', this will be recursive for list elements.'''
        for elem in d:
            value=_elemToValue(elem)
            tag='(%04x, %04x)'%(elem.tag.group,elem.tag.elem)
            parent1 = QtGui.QStandardItem(str(elem.name))
            tagitem = QtGui.QStandardItem(tag)

            if isinstance(value,str):
                try:
                    value=value.decode('ascii')
                    if '\n' in value or '\r' in value: # multiline text data should be shown as repr
                        value=repr(value)
                except:
                    value=repr(value)

                if not regex or re.search(regex,str(elem.name)+tag+value) is not None:
                    parent.appendRow([parent1,tagitem,QtGui.QStandardItem(value)])

            elif value is not None and len(value)>0:
                parent.appendRow([parent1,tagitem])
                for v in value:
                    parent1.appendRow(v)

    def _elemToValue(elem):
        '''Return the value in `elem', which will be a string or a list of QStandardItem objects if elem.VR=='SQ'.'''
        value=None
        if elem.VR=='SQ':
            value=[]
            for i,item in enumerate(elem):
                parent1 = QtGui.QStandardItem('%s %i'%(elem.name,i))
                _datasetToItem(parent1,item)
                if not regex or parent1.hasChildren(): # discard sequences whose children have been filtered out
                    value.append(parent1)
        elif elem.name!='Pixel Data':
            value=str(elem.value)

        return value        

    _datasetToItem(model,dcm)
DicomBrowser.py 文件源码 项目:DicomBrowser 作者: ericspod 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def __init__(self,args,parent=None):
        QtGui.QMainWindow.__init__(self,parent)

        self.srclist=[] # list of source directories
        self.imageIndex=0 # index of selected image
        self.seriesMap=OrderedDict() # maps series table row tuples to DicomSeries object it was generated from
        self.seriesColumns=list(seriesListColumns) # keywords for columns
        self.selectedRow=-1 # selected series row
        self.lastDir='.' # last loaded directory root
        self.filterRegex='' # regular expression to filter tags by

        # create the directory queue and loading thread objects
        self.dirQueue=Queue() # queue of directories to load
        self.loadDirThread=threading.Thread(target=self._loadDirsThread)
        self.loadDirThread.daemon=True # clean shutdown possible with daemon threads
        self.loadDirThread.start() # start the thread now, it will wait until something is put on self.dirQueue

        # setup ui
        self.setupUi(self) # create UI elements based on the loaded .ui file
        self.setWindowTitle('DicomBrowser v%s (FOR RESEARCH ONLY)'%(__version__))
        self.setStatus('')

        # connect signals
        self.importButton.clicked.connect(self._openDirDialog)
        self.statusSignal.connect(self.setStatus)
        self.updateSignal.connect(self._updateSeriesTable)
        self.filterLine.textChanged.connect(self._setFilterString)
        self.imageSlider.valueChanged.connect(self.setSeriesImage)
        self.seriesView.clicked.connect(self._seriesTableClicked)

        # setup the list and table models
        self.srcmodel=QStringListModel()
        self.seriesmodel=SeriesTableModel(self.seriesColumns)
        self.seriesmodel.layoutChanged.connect(self._seriesTableResize)
        self.tagmodel=QtGui.QStandardItemModel()

        # assign models to views
        self.sourceListView.setModel(self.srcmodel)
        self.seriesView.setModel(self.seriesmodel)
        self.tagView.setModel(self.tagmodel)

        # create the pyqtgraph object for viewing images
        self.imageview=pg.ImageView()
        layout=QtGui.QGridLayout(self.view2DGroup)
        layout.addWidget(self.imageview)

        # load the empty image placeholder into a ndarray
        qimg=QtGui.QImage(':/icons/noimage.png')
        bytedata=qimg.constBits().asstring(qimg.width()*qimg.height())
        self.noimg=np.ndarray((qimg.width(),qimg.height()),dtype=np.ubyte,buffer=bytedata)

        # add the directories passed as arguments to the directory queue to start loading
        for i in args:
            if os.path.isdir(i):
                self.addSourceDir(i)
ui.py 文件源码 项目:LoL-Expert 作者: Mioced 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "%s v%s" % (_APPNAME, _VERSION)))
        self.label.setText(_translate("MainWindow", "Summoner Name:"))
        self.comboRegion.setToolTip(_translate("MainWindow", "EU > NA 4Head"))
        self.comboRegion.setItemText(6, _translate("MainWindow", "North America (NA)"))
        self.comboRegion.setItemText(2, _translate("MainWindow", "Europe West (EUW)"))
        self.comboRegion.setItemText(1, _translate("MainWindow", "Europe Nordic East (EUNE)"))
        self.comboRegion.setItemText(3, _translate("MainWindow", "Korea (KR)"))
        self.comboRegion.setItemText(4, _translate("MainWindow", "Latin America North (LAN)"))
        self.comboRegion.setItemText(5, _translate("MainWindow", "Latin America South (LAS)"))
        self.comboRegion.setItemText(7, _translate("MainWindow", "Oceania (OCE)"))
        self.comboRegion.setItemText(8, _translate("MainWindow", "Russia (RU)"))
        self.comboRegion.setItemText(9, _translate("MainWindow", "Turkey (TR)"))
        self.comboRegion.setItemText(10, _translate("MainWindow", "Japan (JP)"))
        self.comboRegion.setItemText(0, _translate("MainWindow", "Brazil (BR)"))
        self.tabWidgetLeague.setTabText(self.tabWidgetLeague.indexOf(self.tabChallenger), _translate("MainWindow", "Challenger"))
        self.tabWidgetLeague.setTabText(self.tabWidgetLeague.indexOf(self.tabMaster), _translate("MainWindow", "Master"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabLeague), _translate("MainWindow", "League"))
        self.tabWidget.setTabToolTip(self.tabWidget.indexOf(self.tabLeague), _translate("MainWindow", "Leaderboard of the current selected region."))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabServers), _translate("MainWindow", "Servers"))
        self.tabWidget.setTabToolTip(self.tabWidget.indexOf(self.tabServers), _translate("MainWindow", "Check the current state of servers and what\'s online and offline."))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabLogs), _translate("MainWindow", "Logs"))
        self.tabWidget.setTabToolTip(self.tabWidget.indexOf(self.tabLogs), _translate("MainWindow", "See what\'s going on while things working and doing their jobs."))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabAbout), _translate("MainWindow", "About"))
        self.tabWidget.setTabToolTip(self.tabWidget.indexOf(self.tabAbout), _translate("MainWindow", "What do you think is this?"))
        self.txtSummonerName.setToolTip(_translate("MainWindow", "Most be at least 3 characters long and no more than 16 characters long."))
        self.GETButton.setToolTip(_translate("MainWindow", "Getting all the summoner\'s data. Including Stats, Runes, Masteries..."))
        self.GETButton.setText(_translate("MainWindow", "&Go"))
        self.btnSaveLogs.setText(_translate("MainWindow", "&Save Logs as A File..."))
        self.btnClearLogs.setText(_translate("MainWindow", "&Clear and &Reset Logs"))

        self.aboutLabel.setHtml(ABOUT())


        #################################################################################################################

        self.current_API = None

        self.status_model = QtGui.QStandardItemModel(self.serversView)
        self.serversView.setModel(self.status_model)

        self.challenger_model = QtGui.QStandardItemModel(self.challengerView)
        self.challengerView.setModel(self.challenger_model)

        self.master_model = QtGui.QStandardItemModel(self.masterView)
        self.masterView.setModel(self.master_model)

        self.GETButton.clicked.connect(self.Get_Summoner_Data)
        self.btnSaveLogs.clicked.connect(self.SaveLogs)
        self.btnClearLogs.clicked.connect(self.ClearLogs)


问题


面经


文章

微信
公众号

扫码关注公众号