for /f \
D:\\Python33\\Lib\\site-packages\\PyQt5\\pyuic5.bat %%i -o %%i.py PyQt支持用LoadUi方法直接加载ui文件,当然我们通过转换后可以方便学习PyQt窗体控件的源代码。
下一篇我们来分析一下Qt Designer布局的源代码
PyQt5&python Gui入门教程(6)Qt Designer窗口布局Layouts(2)
首先我们来看一下,我们创建一个空白Widget窗体,Qt Designer都为我们做了些什么?
嗯,比我们第一个窗体,多了那么几行代码,默认转换后的py文件还不能直接显示出效果,下面我们慢慢学习。
这里我们只加入一个栅格布局,然后......Qt Designer居然给我们多了6行代码
其实Qt Designer生成的代码(编译后)还是非常给力的,至少比我们自己写的规范多了。
这些代码或许不需要我们自己写,但至少我们能看得明白。 其中最主要的两句代码是:
self.gridLayoutWidget = QtWidgets.QWidget(Form)
self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
从Qt Designer中可以看到栅格布局默认创建了两个对象,QtWidgets.QWidget和QtWidgets.QGridLayout。
注意(Form)和(self.gridLayoutWidget)参数,这里可以理解为放置到相应的对象里面。
Qt Designer果然做的比我们想想的多,下面我们再通过简化后的代码来对比一下,可能跟容易理解一些。
注意:Qt Designer首先会见栅格布局作为一个widget放入窗体,并且不影响窗体大小。
栅格布局一般作为顶层布局使用,所以简化后的代码有个self.setLayout(self.gridLayout)
同时Qt Designer会加入一些基本设置,默认信号槽声明,国际化语言支持等等,确实比我们自己写的要好的多。 当然我们需要了解其中的奥秘。
左边是Qt Designer设计效果,右边是显示效果。
再来个稍微复杂点的 知识点:
记得在Qt Designer中窗体的layout层次可以通过对象查看器来查看,layout的一些设置可以通过属性编辑器来修该。
通常我们使用栅格布局作为顶层布局,将控件放置好之后可以通过右键--布局--栅格布局,将布局充满整个窗体。
我们可以先放入控件,然后ctrl选中多个控件,然后点击工具栏上快速布局工具进行布局。
在mianwindows中默认会有个centralwidget布局也是继承自QtWidgets.QWidget,表示窗口的中央部分。 在接下来的教程你会看到mianwindows的使用技巧。