pyqt5 开发一个程序,一个父界面一个子界面,通过父界面的pushbutton按钮来打开子界面,子界面用于显示图片
在子界面里只有scrollArea和Label控件,通过Label控件来调用所要显示的图片,界面全是用QT Designer画的
在QT Designer中设置了布局,窗体预览也没问题,但是到了程序里运行出来的界面scrollArea就有很大的空白
下图是QT Designer中的预览界面
下图是程序运行的界面
我想要让程序运行的界面,通过拖动窗口大小可以实现里面图片的变大变小。
实际上在QT Designer中的预览界面就可以实现这个功能,不知是哪个参数设置错了导致程序跑出来的结果和界面预览结果不一致。
问题已解决,原因是要将显示图片的Label容器的sizePolicy设置成Ignored
不是哪个参数设置错了,是默认使用固定尺寸窗口/控件布局。
在 Qt Designer 中(包括预览)是对于 GUI 的设计,当然可以拖动窗口大小或设置窗口大小尺寸。但 Qt Designer 保存的 .ui 文件,保存了该子窗口布局的尺寸大小,所以在 PyQt 中运行时,实际上该子窗口布局具有固定的大小尺寸,再进行主窗口拖动缩放时,子窗口不会随之变化。
要实现运行的子窗口缩放,需要采用网格布局,在 QtDesigner 或 PyQt5 中设置自适应窗口。如果自动布局的按钮位置不合适,可以在布局框中添加间隔控制器 “Horizontal Spacer”,以调整按钮控件的间隔。
详细参见:
Python 小白从零开始 PyQt5 项目实战(5)布局管理(https://blog.csdn.net/youcans/article/details/120730809)