Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将变量从python文件发送到javascript文件?_Javascript_Python_Python 3.x_Pyqt_Pyqt5 - Fatal编程技术网

如何将变量从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__

我一直在使用pyqt5创建一个桌面应用程序。在我的应用程序中,有一个选项卡小部件,在该选项卡小部件中有一个“开始”按钮。因此,单击该按钮后,将生成纬度和经度列表

我想将此列表发送到一个javascript文件(我正在使用moplex.js创建一个地图),这样我就可以使用此信息创建一个地图。如何从python应用程序将此列表发送到javascript文件

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>'))