Chr*_*ris 75 python user-interface qt pyqt qt-designer
因此,如果我进入QtDesigner并构建一个UI,它将被保存为.ui文件.我怎么能把它作为python文件或在python中使用它?
Max*_*vko 58
在代码中使用.ui的另一种方法是:
from PyQt4 import QtCore, QtGui, uic
class MyWidget(QtGui.QWidget)
...
#somewhere in constructor:
uic.loadUi('MyWidget.ui', self)
Run Code Online (Sandbox Code Playgroud)
两种方法都很好.不要忘记,如果你对图标等使用Qt资源文件(非常有用),你也必须编译它:
pyrcc4.exe -o ui/images_rc.py ui/images/images.qrc
Run Code Online (Sandbox Code Playgroud)
注意,在uic编译接口时,它会在.py文件的末尾添加"import images_rc",因此您必须使用此名称将资源编译到文件中,或者在生成的代码中重命名它.
met*_*mit 45
结合Max的答案和Shriramana Sharma的邮件列表帖子,我构建了一个小的工作示例来加载mywindow.ui包含a 的文件QMainWindow(所以只需选择在Qt Designer的File-New对话框中创建一个主窗口).
这是加载它的代码:
import sys
from PyQt4 import QtGui, uic
class MyWindow(QtGui.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
uic.loadUi('mywindow.ui', self)
self.show()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
luc*_*luc 28
您需要使用pyuic工具(site-packages\pyqt4\bin)从您的ui文件生成python文件
pyuic form1.ui > form1.py
Run Code Online (Sandbox Code Playgroud)
用pyqt4
pyuic4.bat form1.ui > form1.py
Run Code Online (Sandbox Code Playgroud)
然后,您可以将form1导入到脚本中.
小智 24
我发现这篇文章非常有帮助.
http://talk.maemo.org/archive/index.php/t-43663.html
我将简要描述创建和更改.ui文件到.py文件的操作,取自该文章.
该文件已创建并保存,现在我们将使用pyuic从中生成Python代码!
希望这有助于某人.
Aks*_*hay 15
您还可以uic在PyQt5中使用以下代码.
from PyQt5 import uic, QtWidgets
import sys
class Ui(QtWidgets.QDialog):
def __init__(self):
super(Ui, self).__init__()
uic.loadUi('SomeUi.ui', self)
self.show()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Ui()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令将.ui文件转换为可执行的python文件.
pyuic4 -x form1.ui > form1.py
Run Code Online (Sandbox Code Playgroud)
现在你可以直接执行python文件了
python3(whatever version) form1.py
Run Code Online (Sandbox Code Playgroud)
您可以导入此文件,然后就可以使用它.
在我看来,更清洁的方式是首先导出到.py如上所述:
pyuic4 foo.ui > foo.py
Run Code Online (Sandbox Code Playgroud)
然后在代码中使用它(例如main.py),例如:
from foo import Ui_MyWindow
class MyWindow(QtGui.QDialog):
def __init__(self):
super(MyWindow, self).__init__()
self.ui = Ui_MyWindow()
self.ui.setupUi(self)
# go on setting up your handlers like:
# self.ui.okButton.clicked.connect(function_name)
# etc...
def main():
app = QtGui.QApplication(sys.argv)
w = MyWindow()
w.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
这种方式使得其他不使用qt-designer的人能够阅读代码,并将您的功能代码保留在foo.py设计者可能覆盖的范围之外.您只需ui通过MyWindow上面的课程参考.
| 归档时间: |
|
| 查看次数: |
113531 次 |
| 最近记录: |