出走的蚂蚁 2023-03-21 20:17 采纳率: 69.2%
浏览 48

如何在py中直接调用另外一个py文件

在用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的界面如下:

img

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文件,如果不是同一个文件里的,有怎么调用呢。

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2023-03-21 20:37
    关注

    可以直接将目标文件所在的绝对路径写入sys.path中。
    假设需要引用的文件位置在D:\Python\ranjuantest\hello.py

    import sys
    sys.path.append('D:\\Python\\ranjuantest')
    

    python import模块时会在sys.path里按顺序查找。
    然后再引用对应文件

    import hello
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月21日

悬赏问题

  • ¥100 复现论文:matlab仿真代码编写
  • ¥15 esp32驱动GC9A01循环播放视频
  • ¥15 惠普360g9的最新bios
  • ¥30 这个功能用什么软件发合适?
  • ¥60 微信小程序,取消订单,偶尔订单没有改变状态
  • ¥15 用pytorch实现PPO算法
  • ¥15 关于调制信号的星座图?
  • ¥30 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题