当前位置: 首页>>代码示例>>Python>>正文


Python Map.repaint方法代码示例

本文整理汇总了Python中Map.Map.repaint方法的典型用法代码示例。如果您正苦于以下问题:Python Map.repaint方法的具体用法?Python Map.repaint怎么用?Python Map.repaint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Map.Map的用法示例。


在下文中一共展示了Map.repaint方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: TransPublic

# 需要导入模块: from Map import Map [as 别名]
# 或者: from Map.Map import repaint [as 别名]
class TransPublic(QtGui.QMainWindow):
	""" Interficie grafica per l'algorisme """
	SELECT_DEFECTE = u"Escull una estació"

	def __init__(self):
		QtGui.QMainWindow.__init__(self)

		self.trans = None # Per mantenir l'estructura del fitxer de transport en memoria

		self.stOrigen = None
		self.stDesti = None

		self.a = None
		self.cami = None

		self.ui = uic.loadUi('transPublic.ui')

		#Preparem el Frame del mapa i el posem al form
		self.mF = Map(self,None)
		lay = QtGui.QGridLayout()
		lay.addWidget(self.mF)
		self.ui.mapGruopBox.setLayout(lay)

		self.connect(self.ui.menuOpen, QtCore.SIGNAL("activated()"), self.openFile)
		self.connect(self.ui.cbOrigen, QtCore.SIGNAL("activated(QString)"), self.cbOrigen_changed)
		self.connect(self.ui.cbDesti, QtCore.SIGNAL("activated(QString)"), self.cbDesti_changed)
		self.connect(self.ui.pbCalcula, QtCore.SIGNAL("clicked()"), self.calcula)

		self.ui.show()

	def setOrigen(self,st):
		self.stOrigen = st

	def setDesti(self,st):
		self.stDesti = st

	def unLockForm(self):
		self.ui.centralwidget.setEnabled(True)

	def openFile(self):
		"""Funció per obrir el fitxer de transport per treballar"""
		fitxer = QtGui.QFileDialog.getOpenFileName(self, "Selecciona un fitxer de Transport", ".", "*.yaml")
		if not fitxer or fitxer == "": return
		self.trans = Transport.loadFile(str(fitxer))
		self.loadStations()
		self.mF.setTrans(self.trans)
		self.a = AStar(self.trans)
		self.unLockForm()

	def loadStations(self):
		cbOrigen = self.ui.cbOrigen
		cbOrigen.clear()
		cbOrigen.addItem(self.SELECT_DEFECTE)
		cbDesti = self.ui.cbDesti
		cbDesti.clear()
		cbDesti.addItem(self.SELECT_DEFECTE)
		for st in self.trans.stations:
			text = str(st.id)+" "+st.name
			cbOrigen.addItem(text)
			cbDesti.addItem(text)

	def seleccionaEstacio(self,t,funcio):
		# Permet seleccionar tant l'origen com la desti, per no repetir codi
		self.cami = None # reiniciem cami!
		self.ui.tResultat.setText("") # reiniciem text resultat
		if not t == self.SELECT_DEFECTE:
			text = str(t)
			ident = int(text.split(" ")[0]) # Separem per espais i agafem la ID
			funcio(self.trans.getStationByID(ident)) # marquem l'estació com seleccionada
		else:
			funcio(None) # marquem l'estació com seleccionada

		self.mF.repaint() # repintem

	def cbOrigen_changed(self,text):
		self.seleccionaEstacio(text,self.setOrigen)

	def cbDesti_changed(self,text):
		self.seleccionaEstacio(text,self.setDesti)

	def calcula(self):
		if self.stOrigen and self.stDesti:
			# Agafem valors de spinbox (si son diferents a 0, sino None)
			max_dist = None if int(self.ui.spDistancia.value()) == -1 else int(self.ui.spDistancia.value())
			max_transbords = None if int(self.ui.spTransbords.value()) == -1 else int(self.ui.spTransbords.value())
			max_parades = None if int(self.ui.spParades.value()) == -1 else int(self.ui.spParades.value())
			max_caminant = int(self.ui.spCaminant.value()) # sempre hi ha un maxim caminant!

			# Executem algorisme a estrella
			camins = self.a.doAStarSearch(self.stOrigen,self.stDesti,max_dist,max_transbords,max_parades,max_caminant)
			if len(camins) > 0:
				self.cami = camins[0]
				textHR = self.a.transformPathToHumanReadable(self.cami) # text Human Readable
				textHR = textHR.replace("\n","<br />") # fiquem els salts de linea en format HTML
				textQT = QtCore.QString.fromUtf8(textHR) # el passem a format QT ara es veuran bé els accents al QTextEdit
				self.ui.tResultat.setHtml(textQT+"<br /><br />Cost (temps): <b>"+str(self.cami.cost)+"</b>\
				<br />Distancia: <b>"+str(self.cami.distancia)+"</b>\
				<br />Transbords: <b>"+str(self.cami.transbords)+"</b>\
				<br />Parades: <b>"+str(self.cami.parades)+"</b>\
				<br />Temps caminant: <b>"+str(self.cami.caminant)+"</b>")
#.........这里部分代码省略.........
开发者ID:afibanez,项目名称:TransPublic,代码行数:103,代码来源:transPublic.py

示例2: Viewer

# 需要导入模块: from Map import Map [as 别名]
# 或者: from Map.Map import repaint [as 别名]
class Viewer(QtGui.QDialog):

    def __init__(self,parent,trans):
        super(Viewer, self).__init__(parent)
        self.trans = trans
        self.ui = uic.loadUi('viewer.ui')

        # Preparem el Frame del mapa i el posem al form
        self.mF = Map(self,trans)
        lay = QtGui.QGridLayout()
        lay.addWidget(self.mF)
        self.ui.mapGruopBox.setLayout(lay)

        # Connexions d'events
        self.connect(self.ui.viewerListStations, QtCore.SIGNAL("currentItemChanged(QListWidgetItem*,QListWidgetItem*)"), self.listStationsChanged)

        self.stOrigen = None
        self.stDesti = None # No s'utilitza, pero la declarem perque el Map es compartit amb transPublic

        self.loadLines()
        self.loadStations()

        self.ui.show()

    def loadLines(self):
        """Omple el QListWidget viewerListLines amb les linies de transport"""
        l = self.ui.viewerListLines
        l.clear()
        for line in self.trans.lines:
            item = QtGui.QListWidgetItem(line,l) # text,parent
            brush = QtGui.QBrush(self.mF.getLineColor(line)) # per la font dels elements de la llista
            item.setForeground(brush)
            l.addItem(item)

    def loadStations(self):
        """Omple el QListWidget viewerListStations amb les estacions"""
        l = self.ui.viewerListStations
        l.clear()
        for st in self.trans.stations:
            text = str(st.id)+" "+st.name
            if st.cost > 0:
                text += " (Cost: "+str(st.cost)+")"
            l.addItem(text)

    def listStationsChanged(self,newItem,oldItem):
        if oldItem and newItem: # aixi evitem que s'activi només entrar
            text = str(newItem.text())
            ident = int(text.split(" ")[0]) # Separem per espais i agafem la ID
            self.stOrigen = self.trans.getStationByID(ident) # marquem l'estació com seleccionada
            self.mF.repaint() # repintem

    def selectStationByCoords(self,x,y,button):
        # El boto en aquest cas no ens interesa
        st = self.trans.getStationByCoords(x,y)
        # pot ser que no la trobi per click en coordenades on no hi ha res
        if st:
            # La seleccionem a la llista, guardem i repintem (ja que al seleccionar desde aqui no es llença el changed de la llista)
            lS = self.ui.viewerListStations
            for i in range(lS.count()):
                item = lS.item(i)
                text = str(item.text())
                ident = int(text.split(" ")[0])
                if (st.id == ident):
                    item.setSelected(True)
                    lS.scrollToItem(item)
                    self.stOrigen = st # marquem l'estació com seleccionada
                    self.mF.repaint() # repintem
                    break
开发者ID:afibanez,项目名称:TransPublic,代码行数:70,代码来源:Viewer.py


注:本文中的Map.Map.repaint方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。