我正在尝试在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文件。
我该怎么做?
答案 0 :(得分:0)
在脚本上调用import,并在需要时运行它的main函数。
假装您有一个名为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
这将导致以下输出到stdout:
my script
显然,你不会在myscript.py中只有一个print语句。你可以让它运行你想要的任何逻辑。