pyqt写一个界面,界面有一个田字区域,接收来自文件的tensor,根据tensor的值在不同区域画点,tensor值0-3,图像跟着tensor变化而变化
时间: 2024-02-22 16:01:00 浏览: 23
好的,你可以参考以下代码实现:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtCore import Qt
class MyWidget(QWidget):
def __init__(self, tensor):
super().__init__()
self.tensor = tensor
self.setWindowTitle('Tensor Viewer')
self.setGeometry(100, 100, 400, 400)
self.label = QLabel(self)
self.label.setGeometry(50, 50, 300, 300)
def paintEvent(self, event):
qp = QPainter()
qp.begin(self)
for i in range(4):
for j in range(4):
value = self.tensor[i][j]
if value == 0:
qp.setBrush(QColor(255, 255, 255))
elif value == 1:
qp.setBrush(QColor(255, 0, 0))
elif value == 2:
qp.setBrush(QColor(0, 255, 0))
elif value == 3:
qp.setBrush(QColor(0, 0, 255))
qp.drawRect(50 + j * 50, 50 + i * 50, 50, 50)
qp.end()
if __name__ == '__main__':
tensor = [[0, 1, 2, 3], [3, 2, 1, 0], [0, 0, 3, 3], [2, 2, 1, 1]] # 例子中的tensor
app = QApplication(sys.argv)
widget = MyWidget(tensor)
widget.show()
sys.exit(app.exec_())
```
这个界面中有一个田字形的区域,共4行4列,每个格子的大小为50x50。根据题目要求,我们需要根据tensor中的值来绘制不同颜色的点。具体来说,当tensor中的值为0时,点的颜色为白色;当值为1时,点的颜色为红色;当值为2时,点的颜色为绿色;当值为3时,点的颜色为蓝色。我们使用QPainter来进行绘制,具体实现可以参考上面的代码。当我们更新tensor的值时,界面会自动更新。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)