在用UI与逻辑代码分离的方法进行开发的时候,怎么才能在 main.py 直接调用其他的py文件
共三个py文件,分别的 mian.py main_subtract.py main_add.py
main代码如下:
import sys
from PyQt5 import QtWidgets
from interface import Ui_MainWindow
class My_MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): # 主窗口
def __init__(self, parent=None):
super(My_MainWindow, self).__init__(parent) # 初始化
self.setupUi(self)
#self.pushButton.clicked.connect(self.count) # 调用
self.pushButton_2.clicked.connect(self.close) # 关闭窗口
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = My_MainWindow()
MainWindow.show()
sys.exit(app.exec_())
mian.py的界面如下:
main_subtract.py 代码如下:
import sys
from PyQt5 import QtWidgets
from subtrac import Ui_MainWindow
class My_MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): # 主窗口
def __init__(self, parent=None):
super(My_MainWindow, self).__init__(parent) # 初始化
self.setupUi(self)
self.pushButton.clicked.connect(self.count) # 调用
self.pushButton_2.clicked.connect(self.close) # 关闭窗口
def count(self):
a = float(self.lineEdit.text())
b = float(self.lineEdit_2.text())
c = a - b
self.lineEdit_3.setText(str(c))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = My_MainWindow()
MainWindow.show()
sys.exit(app.exec_())
main_add.py 代码如下:
import sys
from PyQt5 import QtWidgets
from add import Ui_MainWindow
class My_MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): # 主窗口
def __init__(self, parent=None):
super(My_MainWindow, self).__init__(parent) # 初始化
self.setupUi(self)
self.pushButton.clicked.connect(self.count) # 调用
self.pushButton_2.clicked.connect(self.close) # 关闭窗口
def count(self):
a = float(self.lineEdit.text())
b = float(self.lineEdit_2.text())
c = a + b
self.lineEdit_3.setText(str(c))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = My_MainWindow()
MainWindow.show()
sys.exit(app.exec_())
现在想要实现点击 “加法”就启动 main_add.py ,点击“减法”启动 main_subtract.py 。
现在是在同一个文件夹里的py文件,如果不是同一个文件里的,有怎么调用呢。
可以直接将目标文件所在的绝对路径写入sys.path中。
假设需要引用的文件位置在D:\Python\ranjuantest\hello.py
import sys
sys.path.append('D:\\Python\\ranjuantest')
python import模块时会在sys.path里按顺序查找。
然后再引用对应文件
import hello
from PyQt5 import QtWidgets
from interface import Ui_MainWindow
import main_subtract
import sys
sys.path.append('E:\\Python\\py文件调用\\main_add') #('D:\\Python\\ranjuantest')
import main_add
class My_MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): # 主窗口
def __init__(self, parent=None):
super(My_MainWindow, self).__init__(parent) # 初始化
self.setupUi(self)
self.pushButton.clicked.connect(main_add) # 调用
self.pushButton_2.clicked.connect(self.close) # 关闭窗口
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
MainWindow = My_MainWindow()
MainWindow.show()
sys.exit(app.exec_())
在主程序中,定义调用,但是运行不了