本文整理汇总了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>")
#.........这里部分代码省略.........
示例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