gpt4 book ai didi

python - 为什么 PlotWidget 在 GridLayout 单元格中无法缩放?

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:05 25 4
gpt4 key购买 nike

我在网格中放置了一些小部件。但这些小部件始终存在奇怪的行为。

如果将一个 ImageViewPlotWidget 放在附近,ImageView 会收缩,PlotWidged 会拉伸(stretch)。我放置了两个 ImageView 和两个 PlotWidget 来检查 - 一切正常。怎么了?

import sys
import numpy as np
from PyQt5.QtWidgets import QWidget, QGridLayout, QPushButton, QApplication
import pyqtgraph as pg
from PIL import Image


class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()

def initUI(self):

grid = QGridLayout()
self.setLayout(grid)
self.Imv = pg.ImageView()
win = pg.PlotWidget()
win.plot(np.random.random_sample(40)*10)
btn1 = QPushButton("Start")
btn2 = QPushButton('Forward/backward')
btn3 = QPushButton('Filters')
grid.addWidget(self.Imv, 0, 0, 1, 1)
grid.addWidget(win, 0, 1, 1, 1)
grid.addWidget(btn1, 1, 0, 1, 1)
grid.addWidget(btn2, 2, 0, 1, 1)
grid.addWidget(btn3, 3, 0, 1, 1)
btn1.clicked.connect(self.cap)
self.move(300, 150)
self.setWindowTitle('Scentific camera view')
self.show()

def cap(self):
global Imv
img = np.array(Image.open('D:/Frames/image7.jpg'))
self.Imv.setImage(img.T)

if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

所以看起来:

Picture 1

两个 ImageView 靠近 - 没关系:

Two ImageViews near

最佳答案

我建议使用 QTDesigner 构建 UI 并自动生成代码。这让事情变得容易多了。如果您必须手动执行此操作,请尝试将大小策略设置为扩展或将几何图形更改为固定大小:

win.setGeometry(QtCore.QRect(10, 20, 621, 181))
win.setSizePolicy(QtWidgets.QSizePolicy.Expanding)

关于python - 为什么 PlotWidget 在 GridLayout 单元格中无法缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59303718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com