Python 如何在qt应用程序中包含脚本?

Python 如何在qt应用程序中包含脚本?,python,pyqt4,Python,Pyqt4,我试图在GUI应用程序中使用四种不同的python脚本 每个脚本大约有500行代码。那么我不想把每一张完整的纸条都作为一个函数 这是应用程序的框架: from FullConversor import * #this is the .py gui import sys import datetime import os import pandas as pd import shapefile as shp import csv import tkinter.filedia

我试图在GUI应用程序中使用四种不同的python脚本

每个脚本大约有500行代码。那么我不想把每一张完整的纸条都作为一个函数

这是应用程序的框架:

from FullConversor import *   #this is the .py gui  
import sys    
import datetime
import os
import pandas as pd
import shapefile as shp  
import csv  
import tkinter.filedialog


class FullConversorGUI(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.pushButtonConvert, QtCore.SIGNAL ('clicked()') ,self.conversor)
        QtCore.QObject.connect(self.ui.pushButtonClose, QtCore.SIGNAL ('clicked()') ,self.close)


    def conversor(self):
        if self.ui.radioButton1.isChecked()== True: 
            pass
        if self.ui.radioButton2.isChecked()== True:  
            pass
        if self.ui.radioButton3.isChecked()== True:  
            pass
        if self.ui.radioButton4.isChecked()== True: 
            pass


if __name__=='__main__':
    app = QtGui.QApplication(sys.argv)
    myapp = FullConversorGUI()
    myapp.show()
    sys.exit(app.exec_())
每个radioButton都必须启动一个python脚本,只有一个单独运行良好的.py文件


如何实现这一点?

在脚本上调用import,并在需要时运行它的主要功能

假设您有一个名为
myscript.py

# this is myscript.py

def main():
    # this function will be called from your gui. all your logic should be here.
    print "my script"

if __name__ == '__main__':
    # this function is called when you invoke the script from the command line. 
    main()
然后在gui中

import myscript

if self.ui.radioButton1.isChecked()== True: 
    myscript.main()
    # continue after the script runs
这将导致以下输出到标准输出:

my script

显然,myscript.py中不会只有一个print语句。您可以让它运行您想要的任何逻辑。

如果self.ui.radioButton1.isChecked()==True:myscript.main()经过编辑以反映用户特定的情况。谢谢@kamomeWell,我不明白。我在脚本的末尾包括if name==“main”:main,但是当我导入它时,脚本运行了,我无法将其安装到收音机上button@kamomepython脚本只是一个文件。在本例中,让我们假设它被称为
myscript.py
。如果您的脚本与运行gui的目录相同,那么您可以像导入python中的标准库一样导入它(您使用
import sys
等在代码顶部进行了导入),然后您将调用脚本主方法的执行来运行它。。。请更详细地告诉我什么是不清楚的,我将进一步解释答案。让我们认真考虑不要将一个名为“代码> ISCKECKD())/<代码>的函数的返回值与布尔文字进行比较。