import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout class MainWindow(QWidget): def init(self, data): super().init() # 创建界面元素 self.label1 = QLabel("坐标") self.label4 = QLabel("类别") self.button1 = QPushButton("1 ") self.button2 = QPushButton("2 ") self.button3 = QPushButton("3 ") self.button4 = QPushButton("4 ") self.button = QPushButton("确定") self.exit_button = QPushButton("退出") # 创建布局管理器 layout = QVBoxLayout() layout.addWidget(self.label1) layout.addWidget(self.label4) layout.addWidget(self.button1) layout.addWidget(self.button2) layout.addWidget(self.button3) layout.addWidget(self.button4) layout.addWidget(self.button) layout.addWidget(self.exit_button) # 退出 # 设置界面布局 self.setLayout(layout) # 为按钮添加点击事件 self.button1.clicked.connect(lambda: self.show_info(data[0])) self.button2.clicked.connect(lambda: self.show_info(data[1])) self.button3.clicked.connect(lambda: self.show_info(data[2])) self.button4.clicked.connect(lambda: self.show_info(data[3])) self.button.clicked.connect(lambda: self.show_upper_info())#确定 self.exit_button.clicked.connect(lambda: self.close()) # 为退出按钮添加点击事件 self.setFixedSize(500, 300) def show_info(self, info): # 显示信息 self.label1.setText("坐标:" + str(info[0])+","+str(info[1])+","+str(info[2])+","+str(info[3])) self.label4.setText("类别:" + str(info[4])) def show_upper_info(self): # 获取当前显示的信息 upper_info = self.label1.text() + "\n" + self.label4.text() # 在控制台输出上位机信息 print("\n" + upper_info) if name == 'main': # 假设这是程序输出的信息 data = [ [123, 456,"宽","高", "类别"], [234, 567,"宽", "高", "类别"], [345, 678, "宽", "高", "类别"], [456, 789, "宽", "高", "类别"], ] # 创建应用程序和窗口 app = QApplication(sys.argv) window = MainWindow(data) window.show() # 运行应用程序 sys.exit(app.exec_())将这个程序中data的输入改为另一个程序的print输出
时间: 2023-06-16 22:03:23 浏览: 73
如果你想将另一个程序的print输出作为data输入到这个程序中,可以使用以下方法:
1. 将另一个程序的print输出保存到一个文本文件中,以便读取。
2. 在这个程序中,使用Python内置的文件读取函数打开文本文件,读取其中的内容,并将其转化为data格式所需的列表或字典。
3. 将读取到的数据作为参数传递给MainWindow类的实例,并运行应用程序。
下面是一个可能的实现方式:
```
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout
class MainWindow(QWidget):
def __init__(self, data):
super().__init__()
# 创建界面元素
self.label1 = QLabel("坐标")
self.label4 = QLabel("类别")
self.button1 = QPushButton("1 ")
self.button2 = QPushButton("2 ")
self.button3 = QPushButton("3 ")
self.button4 = QPushButton("4 ")
self.button = QPushButton("确定")
self.exit_button = QPushButton("退出")
# 创建布局管理器
layout = QVBoxLayout()
layout.addWidget(self.label1)
layout.addWidget(self.label4)
layout.addWidget(self.button1)
layout.addWidget(self.button2)
layout.addWidget(self.button3)
layout.addWidget(self.button4)
layout.addWidget(self.button)
layout.addWidget(self.exit_button)
# 退出
# 设置界面布局
self.setLayout(layout)
# 为按钮添加点击事件
self.button1.clicked.connect(lambda: self.show_info(data[0]))
self.button2.clicked.connect(lambda: self.show_info(data[1]))
self.button3.clicked.connect(lambda: self.show_info(data[2]))
self.button4.clicked.connect(lambda: self.show_info(data[3]))
self.button.clicked.connect(lambda: self.show_upper_info())#确定
self.exit_button.clicked.connect(lambda: self.close()) # 为退出按钮添加点击事件
self.setFixedSize(500, 300)
def show_info(self, info): # 显示信息
self.label1.setText("坐标:" + str(info[0])+","+str(info[1])+","+str(info[2])+","+str(info[3]))
self.label4.setText("类别:" + str(info[4]))
def show_upper_info(self): # 获取当前显示的信息
upper_info = self.label1.text() + "\n" + self.label4.text()
print("\n" + upper_info)
if __name__ == '__main__':
# 读取另一个程序的print输出作为data输入
with open('output.txt', 'r') as f:
data = []
for line in f:
data.append(line.strip().split(','))
# 创建应用程序和窗口
app = QApplication(sys.argv)
window = MainWindow(data)
window.show()
# 运行应用程序
sys.exit(app.exec_())
```
在这个程序中,我们使用了Python内置的`open`函数打开了名为`output.txt`的文本文件,并将其中每一行的内容转化为列表形式,并添加到`data`列表中。这样就得到了类似于程序中定义的`data`列表的格式。然后,我们将`data`作为参数传递给`MainWindow`类的实例,就可以运行应用程序了。