张渊博 2022-01-20 20:30 采纳率: 80.6%
浏览 299
已结题

pyqt5 传数据到另一个py,以及显示另一个py结果

两个问题:
1、把界面中输入的连接情况、计算数据、电源个数、变电站个数。这些输入数据依次传输到第二个文件的yigetu_list,xuesheng_shuju,dianyuandian_num,biandianzhan_num 。
2、把第二个py文件dafen()函数输出结果在一个界面文件本次得分显示结果
第一个界面文件

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QMainWindow
from MianUi import Ui_MainWindow

from DBDF import *

import os


import sys
class Project(QMainWindow,Ui_MainWindow):
    def __init__(self):
        super(Project, self).__init__()
        self.setupUi(self)
        self.mode =0
        # self.date1=[]
        self.tableWidget_1.setColumnCount(2)#列数
        self.tableWidget_1.setHorizontalHeaderLabels(['连接数据1','连接数据2'])#表头

        self.tableWidget_2.setColumnCount(13)
        self.tableWidget_2.setHorizontalHeaderLabels(['连接','距离','容量','导线分裂数 n','载流量 I','导线计算截面 SG','导线计算截面 LG','导线标准截面对应的载流量 ZLG','故障情况下载流量满足情况 GZ','线路电阻 RL','线路电抗 XL','线路电纳 BL','线路 Q'])
        # self.tableWidget_2.setHorizontalHeaderLabels(['连接','距离','容量'])
        self.pushButton.clicked.connect(self.addinformation)#点确认添加与列表连接
        self.pushButton_2.clicked.connect(self.tijiao)
        # self.pushButton_2.clicked.connect(self.tijiao,)


        # self.shengchnegshuju.clicked.connect(self.shengchnegshuju_)


    def getshuju_prcoess(self):
        table_d1 = {}
        table_d2 = {}
        if self.mode==0:
            # 获取表格行数和列数
            row_num = self.tableWidget_1.rowCount()
            cols_num = self.tableWidget_1.columnCount()
            # 存储表格数值
            for i in range(0, row_num):
                for j in range(0, cols_num):
                    # 获取指定单元格里的值
                    if (self.tableWidget_1.item(i, j) != None):
                        table_d1[str(i) + str(j)] = self.tableWidget_1.item(i, j).text()
                    else:
                        table_d1[str(i) + str(j)] = ""
            # print(table_d1)
            w = []

            for i in table_d1:
                w.append(table_d1[i])
            # print(b)
            step = 2
            table_d11 = [w[i:i + step] for i in range(0, len(w), step)]
            print((table_d11))

            # 展示表格数值
            # for (i, j) in table_d1:
            #     print(table_d1[str(i) + str(j)])
            # self.date[] = table_d1
        else:
            # 获取表格行数和列数
            row_num = self.tableWidget_2.rowCount()
            cols_num = self.tableWidget_2.columnCount()
            # print(row_num,cols_num)
            # 存储表格数值
            for i in range(0, row_num):
                for j in range(0, cols_num):
                    # 获取指定单元格里的值
                    if (self.tableWidget_2.item(i, j) != None):
                        table_d2[str(i) + str(j)] = self.tableWidget_2.item(i, j).text()
                    else:
                        table_d2[str(i) + str(j)] = ""
            # print(table_d2)
            b = []
            for i in table_d2:
                b.append(table_d2[i])
            # print(b)
            step = 13
            c = [b[i:i + step] for i in range(0, len(b), step)]
            # print(c)
            table_d22 = []
            for i in range(len(c)):
                x = []
                for j in range(len(c[i])):
                    if j != 0 and j != 8:
                        z = float(c[i][j])
                        x.append(z)
                    else:
                        z = c[i][j]
                        x.append(z)
                table_d22.append(x)
            print(table_d22)
            # # 展示表格数值
            # for (i, j) in table_d2:
            #     print(table_d2[str(i) + str(j)])



    def addinformation(self):
        # coloum1 = int(self.tianbiandianzhangeshu.text())
        # coloum2 = int(self.tiandianyuandiangeshu.text())
        coloum = int(self.lineEdit.text())#设置添加数
        self.tableWidget_1.setRowCount(coloum)#生成行数
        self.tableWidget_2.setRowCount(coloum)#生成行数

    def addinformation1(self):
        coloum = float(self.xianshixueshengcengji.dafen())  # 设置添加数






    def tijiao(self):
        self.getshuju_prcoess()
        self.mode =1
        self.getshuju_prcoess()
        self.mode =0





        # Jisuan(date,date2)
    #
    # def shengchnegshuju_(self):
    #     os.system("python  DBBDZ.py")
    #     gongshi()



if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    # MainWindow = QtWidgets.QMainWindow()
    ui = Project()
    ui.show()
    sys.exit(app.exec_())


下面是第二个py文件

import copy
from itertools import combinations
import networkx as nx
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from main import *

def shuru():
    yigetu_list = [['1', '2'], ['1', '3'], ['2', 'A']]  # 输入
    q = copy.deepcopy(yigetu_list)  # suo zhidianyuandian_num,yigetu_list
    xuesheng_shuju = [['1-2', 23.6, 50, 1, 328, 275, 240, 700, '断线满足', 3, 9.2, 9.3, 5.4],
                      ['1-3', 23.6, 50, 1, 328, 275, 240, 700, '断线不满足', 3, 9.2, 9.3, 5.4],
                     ['2-A', 23.6, 50, 1, 328, 275, 240, 700, '断线不满足', 3, 9.2, 9.3, 5.4]]
    dianyuandian_num = 1  # 输入
    biandianzhan_num = 3

def dafen():
    yigetu_list, q, xuesheng_shuju, dianyuandian_num, biandianzhan_num = shuru()
    daochubiaozhun_shuju=tuku()
    # print(len(daochubiaozhun_shuju))
    data10 = pd.read_excel('变电站.xls', sheet_name='Sheet10')
    data10 = np.array(data10)
    fen = []
    for i in range(len(xuesheng_shuju)):
        fen1_ = []
        fen2_ = []
        fen3_ = []
        fen4_ = []
        fen5_ = []
        fen6_ = []
        fen7_ = []
        fen8_ = []
        fen9_ = []
        fen10_ = []
        fen11_ = []
        fen12_ = []
        for j in range(len(daochubiaozhun_shuju)):
            if xuesheng_shuju[i][0] == daochubiaozhun_shuju[j][0]:  # 下一步这个的J I是不是就是定死了?
                if daochubiaozhun_shuju[j][1] == xuesheng_shuju[i][1]:
                    fen1 = 3
                    fen1_.append(fen1)
                elif (daochubiaozhun_shuju[j][1] - 1) < (xuesheng_shuju[i][1]) < (daochubiaozhun_shuju[j][1] + 1):

                    fen1 = 2
                    fen1_.append(fen1)
                else:
                    fen1 = 1
                    fen1_.append(fen1)

                if daochubiaozhun_shuju[j][2] == xuesheng_shuju[i][2]:
                    fen2 = 3
                    fen2_.append(fen2)
                elif daochubiaozhun_shuju[j][2] - 10 < xuesheng_shuju[i][2] < daochubiaozhun_shuju[j][2] + 10:
                    fen2 = 2
                    fen2_.append(fen2)
                else:
                    fen2 = 1
                    fen2_.append(fen2)

                if xuesheng_shuju[i][3] == daochubiaozhun_shuju[j][3]:
                    fen3 = 1
                    fen3_.append(fen3)
                else:
                    fen3 = 0
                    fen3_.append(fen3)

                if daochubiaozhun_shuju[j][4] == xuesheng_shuju[i][4]:
                    fen4 = 3
                    fen4_.append(fen4)
                elif daochubiaozhun_shuju[j][4] - 10 < xuesheng_shuju[i][4] < daochubiaozhun_shuju[j][4] + 10:
                    fen4 = 2
                    fen4_.append(fen4)
                else:
                    fen4 = 1
                    fen4_.append(fen4)

                if daochubiaozhun_shuju[j][5] == xuesheng_shuju[i][5]:
                    fen5 = 3
                    fen5_.append(fen5)
                elif daochubiaozhun_shuju[j][5] - 10 < xuesheng_shuju[i][5] < daochubiaozhun_shuju[j][5] + 10:
                    fen5 = 2
                    fen5_.append(fen5)
                else:
                    fen5 = 1
                    fen5_.append(fen5)

                if daochubiaozhun_shuju[j][6] == xuesheng_shuju[i][6]:
                    fen6 = 3
                    fen6_.append(fen6)
                elif data10[np.where(data10[..., 0] == xuesheng_shuju[i][6])[0][0] + 1][0] < xuesheng_shuju[i][6] < \
                        data10[np.where(data10[..., 0] == xuesheng_shuju[i][6])[0][0] - 1][0]:
                    fen6 = 2
                    fen6_.append(fen6)
                else:
                    fen6 = 1
                    fen6_.append(fen6)

                if daochubiaozhun_shuju[j][7] == xuesheng_shuju[i][7]:
                    fen7 = 3
                    fen7_.append(fen7)
                elif data10[np.where(data10[..., 6] == xuesheng_shuju[i][7])[0][0] + 1][6] < xuesheng_shuju[i][7] < \
                        data10[np.where(data10[..., 6] == xuesheng_shuju[i][7])[0][0] - 1][6]:
                    fen7 = 2
                    fen7_.append(fen7)
                else:
                    fen7 = 1
                    fen7_.append(fen7)

                if daochubiaozhun_shuju[j][8] == xuesheng_shuju[i][8]:  # 有个BUG 这里如果学生提交的是不满足的情况,也按对的算
                    fen8 = 3
                    fen8_.append(fen8)
                else:
                    fen8 = 0
                    fen8_.append(fen8)

                if daochubiaozhun_shuju[j][9] == xuesheng_shuju[i][9]:
                    fen9 = 3
                    fen9_.append(fen9)
                elif daochubiaozhun_shuju[j][9] - 1 < xuesheng_shuju[i][9] < daochubiaozhun_shuju[j][9] + 1:
                    fen9 = 2
                    fen9_.append(fen9)
                else:
                    fen9 = 1
                    fen9_.append(fen9)

                if daochubiaozhun_shuju[j][10] == xuesheng_shuju[i][10]:
                    fen10 = 3
                    fen10_.append(fen10)
                elif daochubiaozhun_shuju[j][10] - 1 < xuesheng_shuju[i][10] < daochubiaozhun_shuju[j][10] + 1:
                    fen10 = 2
                    fen10_.append(fen10)
                else:
                    fen10 = 1
                    fen10_.append(fen10)

                if daochubiaozhun_shuju[j][11] == xuesheng_shuju[i][11]:
                    fen11 = 3
                    fen11_.append(fen11)
                elif daochubiaozhun_shuju[j][11] - 1 < xuesheng_shuju[i][11] < daochubiaozhun_shuju[j][11] + 1:
                    fen11 = 2
                    fen11_.append(fen11)
                else:
                    fen11 = 1
                    fen11_.append(fen11)

                if daochubiaozhun_shuju[j][12] == xuesheng_shuju[i][12]:
                    fen12 = 3
                    fen12_.append(fen12)
                elif daochubiaozhun_shuju[j][12] - 1 < xuesheng_shuju[i][12] < daochubiaozhun_shuju[j][12] + 1:
                    fen12 = 2
                    fen12_.append(fen12)
                else:
                    fen12 = 1
                    fen12_.append(fen12)
        fen.append(fen1_ + fen2_ + fen3_ + fen4_ + fen5_ + fen6_ + fen7_ + fen8_ + fen9_ + fen10_ + fen11_ + fen12_)
    # print('本次成绩{}'.format(fen))
    shiyan_chengji = []
    for i in range(len(fen)):
        shiyan_chengji1 = sum((fen[i]))
        shiyan_chengji.append(shiyan_chengji1)
    # print(shiyan_chengji)
    defen = sum(shiyan_chengji)
    print('本次成绩{}'.format(defen))

if __name__ == '__main__':
    dafen()

    # 


    #通过生成图找出库图对应数据


  • 写回答

1条回答 默认 最新

  • ·星辰大海 2022-01-20 21:24
    关注

    pyqt5我不是很懂,但是我觉得这个可以用管道来传一下

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月21日
  • 创建了问题 1月20日

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集