如何将变量从python文件发送到javascript文件?
我一直在使用pyqt5创建一个桌面应用程序。在我的应用程序中,有一个选项卡小部件,在该选项卡小部件中有一个“开始”按钮。因此,单击该按钮后,将生成纬度和经度列表 我想将此列表发送到一个javascript文件(我正在使用moplex.js创建一个地图),这样我就可以使用此信息创建一个地图。如何从python应用程序将此列表发送到javascript文件如何将变量从python文件发送到javascript文件?,javascript,python,python-3.x,pyqt,pyqt5,Javascript,Python,Python 3.x,Pyqt,Pyqt5,我一直在使用pyqt5创建一个桌面应用程序。在我的应用程序中,有一个选项卡小部件,在该选项卡小部件中有一个“开始”按钮。因此,单击该按钮后,将生成纬度和经度列表 我想将此列表发送到一个javascript文件(我正在使用moplex.js创建一个地图),这样我就可以使用此信息创建一个地图。如何从python应用程序将此列表发送到javascript文件 class App(QMainWindow): def __init__(self): super().__init__
class App(QMainWindow):
def __init__(self):
super().__init__()
self.title = 'Delivering & Tracking'
self.setWindowTitle(self.title)
self.tab_widget = MyTabWidget(self)
self.setCentralWidget(self.tab_widget)
self.showFullScreen()
class MyTabWidget(QWidget):
def __init__(self, parent):
super(QWidget, self).__init__(parent)
self.layout = QVBoxLayout(self)
#Initialize tab screen
self.tabs = QTabWidget()
self.map_tab = Maps()
self.tabs.resize(300,200)
self.tabs.addTab(self.map_tab,QIcon("./icons and images/tab_map.png"), ('Map'))
self.layout.addWidget(self.tabs)
self.setLayout(self.layout)
class Maps(QWidget):
def __init__(self):
super().__init__()
self.startButton()
def startButton(self):
button = QPushButton("Start", self)
button.move(655, 415)
button.clicked.connect(self.map)
self.show()
def map(self):
#A list is generated in this function.
latlon = []
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
在map函数中生成的latlon列表,我想将列表发送到javascript文件,这样我就可以将其用于映射。我可能会将列表写入最有意义的任何格式的文件,然后使用您正在使用的javascript从该文件中读取 例如(写): 例如(阅读,我个人不懂javascript,所以这可能是一个糟糕的解决方案):
我以前没有这样做过,但看起来您可以在服务器上拥有一个javascript文件,并在评估框架中的脚本之前简单地将坐标注入其中 如果您的javascript文件具有以下格式:
// map_source.js
// a lot of javascript
map.panTo(new L.LatLng($lat$, $long$));
// more javascript
// file end
然后可以按以下方式插入经度和纬度:
def map(self):
#A list is generated in this function.
latlon = [latitude_value, longitude_value]
with open('map_source.js', 'r') as f:
lines = '<my custom newline>'.join(f.readlines())
# substitute latitude
lines = lines.replace('$lat$',str(latlon[0]))
# substitute longitude
lines = lines.replace('$long$',str(latlon[1]))
# Now write the file back
with open('map_source.js', 'w') as f:
f.writelines(lines.split('<my custom newline>'))
def映射(自):
#在该函数中生成一个列表。
纬度=[纬度值,经度值]
将open('map_source.js','r')作为f:
lines=''.join(f.readlines())
#替代纬度
行=行。替换(“$lat$”,str(latlon[0]))
#替代经度
行=行。替换(“$long$”,str(latlon[1]))
#现在写回文件
将open('map_source.js','w')作为f:
f、 写线(行分割(“”))
@aloysiussamel没问题,如果您觉得这解决了您的问题,请将此标记为答案!:)
// map_source.js
// a lot of javascript
map.panTo(new L.LatLng($lat$, $long$));
// more javascript
// file end
def map(self):
#A list is generated in this function.
latlon = [latitude_value, longitude_value]
with open('map_source.js', 'r') as f:
lines = '<my custom newline>'.join(f.readlines())
# substitute latitude
lines = lines.replace('$lat$',str(latlon[0]))
# substitute longitude
lines = lines.replace('$long$',str(latlon[1]))
# Now write the file back
with open('map_source.js', 'w') as f:
f.writelines(lines.split('<my custom newline>'))