擅长:python、mysql、java
<p>在运行时加载UI有两个缺点:</p>
<ul>
<li>每次运行程序时的开销(实际上,每次使用加载程序时)</li>
<li>缺少对代码完成和检查的支持,因为IDE在加载uifile之前不知道<code>ui</code>背后的代码。在</li>
</ul>
<p>假设您使用的是PySide的现代版本“Qt for Python”,另一种方法是将.ui文件“编译”为Python类(请参见<a href="https://doc.qt.io/qtforpython/tutorials/basictutorial/uifiles.html" rel="nofollow noreferrer">docs</a>)。为此,在保存<code>filename.ui</code>之后,执行</p>
<pre><code>pyside2-uic filename.ui -o ui_mainwindow.py
</code></pre>
<p>在您的虚拟环境中,如果有的话。新类将被称为Ui_MainWindow。假设您的UI中有一个<code>text_box</code>小部件,现在可以访问它的属性和方法。下面是一个完整的工作示例:</p>
^{pr2}$
<p>注意事项:</p>
<ul>
<li>每次更改.ui文件后都应调用pyside2uic。与OP相比,这是这种方法的一个缺点。它还意味着您应该同时控制ui的.ui和.py文件,或者在部署期间调用uic。在</li>
<li>最大的优势是,像PyCharm这样的IDE可以访问所有小部件方法和属性,以进行自动完成和代码检查。在</li>
<li>到今天为止,pyside2uic创建了不兼容PEP8的代码。但是,只要你给你的widgets提供PEP8兼容的名称,你自己的代码就可以了。在</li>
</ul>