Python 如何在qt应用程序中包含脚本?
我试图在GUI应用程序中使用四种不同的python脚本 每个脚本大约有500行代码。那么我不想把每一张完整的纸条都作为一个函数 这是应用程序的框架: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
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())/<代码>的函数的返回值与布尔文字进行比较。