1. 程式人生 > >Python 將ui qml檔案轉成py檔案

Python 將ui qml檔案轉成py檔案

使用PyQt開發程式時如何從python程式碼中載入介面檔案(*.ui或*.qml):
一,載入*.ui檔案:
載入*.ui檔案有兩種方法:
1.使用pyuic工具將*.ui檔案轉換成*.py檔案(命令格式是python /usr/lib/python2.7/dist-packages/PyQt4/uic/pyuic.py -o [name].py [name].ui,一般預設設定都是這個,如果你的pyuic.py檔案路徑不是這個請自己修改),然後在需要顯示介面的*.py檔案中匯入該檔案,一般自動生成的類名叫做Ui_[fileName],然後你就可以在程式中使用該ui檔案了.這種方法優點是載入介面速度快,缺點是需要手動使用pyuic工具更新介面檔案,有時候會忘記更新.
示例:
1.1:直接繼承生成的介面類,推薦這種,可以直接訪問ui中的各種控制元件,就像直接在__init__函式中用程式碼建立的一樣.
注意ui檔案中的頂層類必須和自己的類所繼承的基類是同一個類,比如下面的uiFileName.ui檔案中的頂層類是QMainWindow,那customWindow類也必須繼承自QMainWindow,否則會提示一些函式未定義.
from [uiFileName] import Ui_[className]
class customWindow(PyQt4.QtGui.QMainWindow, Ui_[className]) #多重繼承
def __init__(self, parent=None):
super(customWindow, self).__init__(parent)
self.setupUi(self)
self.customLabel.setText('visit widget directly') #訪問ui檔案中定義的控制元件
1.2:在自己的類中建立生成的介面類,訪問ui中的控制元件需要通過變數.
from [uiFileName] import Ui_[className]
class customWindow(PyQt4.QtGui.QMainWindow) #只繼承一個基類
def __init__(self, parent=None):
super(customWindow, self).__init__(parent)
self.ui = Ui_[className]() #建立一個類
self.ui.setupUi(self)
self.ui.customLabel.setText('visit widget by a variable') #訪問ui檔案中定義的控制元件
2.直接使用*.ui檔案,在需要顯示介面的*.py檔案中匯入PyQt4.uic,然後在你自己的介面類中加入self.ui = PyQt4.uic.loadUi('[path of *.ui]', self),之後你就可以通過self.ui.[objectName]變數訪問該ui檔案中的控制元件了,loadUi這個函式返回的是一個widget類,如果你不使用類的方式呼叫,你也可以直接show它.這種方法的優點是省去了手動編譯*.ui檔案的過程,省事,缺點是程式在載入介面的時候稍慢,特別是介面檔案內容比較多比較複雜的時候.

示例:

2.1:面向物件式程式設計
import PyQt4.uic
class customWindow(PyQt4.QtGui.QMainWindow)
def __init__(self, parent=None):
super(customWindow, self).__init__(parent)
self.ui = PyQt4.uic.loadUi('mainwindow.ui', self)
self.ui.customLabel.setText('visit widget by a variable')
2.2:普通方式程式設計
import PyQt4.uic
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
mWindow = PyQt4.uic.loadUi('mainwindow.ui')
mWindow.customLabel.setText('visit widget by a variable')
mWindow.show()

exit(app.exec())

更詳細的說明在PyQt Reference Guide裡,在ubuntu中安裝該文件(名字是python-qt4-doc)後即可在/usr/share/doc下找到同名目錄,其中包括PyQt4的示例程式和說明文件.
二,載入*.qml檔案:
在需要顯示介面的*.py檔案中可以直接當做普通檔案從儲存目錄載入,無需額外操作,以下是例子:
from PyQt4 import QtDeclarative
view = QtDeclarative.QDeclarativeView() #定義一個qml view.
view.rootContext().setContextProperty('window', view) #可以將一個python變數傳入qml以便於python和qml的資料互動,這裡傳入的是view本身,在qml檔案裡使用window來引用view.
view.setSource(QtCore.QUrl('/qmls/main.qml')) #指定qml檔案路徑
view.setResizeMode(QtDeclarative.QDeclarativeView.SizeRootObjectToView) #使用qml檔案內的尺寸定義作為預設顯示尺寸
view.show()
注意:如果使用了Qt資原始檔(*.qrc),那麼編譯前需要先使用pyrcc工具將*.qrc檔案轉換成*.py檔案(命令格式是pyrcc4 -o [name].py [name].qrc),然後在使用該資原始檔的*.py檔案中匯入這個轉換後的*.py,即import [fileName],然後上面例子中的setSource可以改成這樣:view.setSource(QtCore.QUrl('qrc:/qmls/main.qml'))

相關推薦

Python ui qml檔案py檔案

使用PyQt開發程式時如何從python程式碼中載入介面檔案(*.ui或*.qml): 一,載入*.ui檔案: 載入*.ui檔案有兩種方法: 1.使用pyuic工具將*.ui檔案轉換成*.py檔案(命令格式是python /usr/lib/python2.7/dist-pac

使用pyside+designer.ui檔案化為.py檔案的兩種方法

一、使用pyside-uic.exe將.ui檔案轉化為.py檔案 1、進入Pycharm的設定介面 2、進入外部工具設定 3、配置designer.exe,注意program路徑和working directory路徑 4、配置pyUIC,注

如何.ipynb檔案化成.py檔案(或者其他格式)

安裝好jupyter notebook之後,可以採用兩種方法進行檔案轉換。 法一: 在終端輸入:(其中xxx.ipynb是要轉換檔案的名字) jupyter nbconvert --to script xxx.ipynb 法二: step 1:啟動Jupyter

利用Javaword檔案pdf檔案

說明:使用本方法計算機中必須含有office 一.準備工作 1.準備如圖三個檔案: 2.將第二個檔案複製到C:\Windows\System32,將第三個檔案複製到C:\Windows\SysWOW64, 然後將這兩個檔案複製到jdk,jre裡面的bin資料夾 二.開始編譯

Python如何執行.ipynb檔案化為.py檔案

開發十年,就只剩下這套架構體系了! >>>   

運用pythonjson檔案儲存csv檔案

工具:  spyder ,codecs  ,pandas # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ #-*-coding:utf-8-*- import j

使用python把html網頁pdf檔案

我們看到一些比較寫的比較好文章或者部落格的時候,想儲存下來到本地當一個pdf檔案,當做自己的知識儲備,以後即使這個部落格或者文章的連線不存在了,或者被刪掉,咱們自己也還有。 當然咱們作為一個coder,這樣的事情肯定不能手動儲存下來然後再轉成pdf存起來對不對,有失咱們碼農的身份,當然要自動化的來實現了~

itext7pdf模板pdf檔案

使用adobe Acrobat Pro DC製作pdf模板 這裡就略了,大家可以上網搜下,有很多方法 擼程式碼 在itext7第一節的基礎上在pom檔案新增junit依賴方便測試 <dependency> <groupId>juni

生成二維碼,返回檔案位元組碼,或檔案base64返回

    @PostMapping("/admin/get/qrcode")     public  ResponseEntity<byte[]>  getQrcode(Long id,boolean need

電腦小白如何快速學會pdf檔案word文件

今天我們來分析一下為什麼pdf轉word那麼難,出現在百度搜索第一位的PDF轉換器卻是使用者差評連連。PDF格式特殊,PDF是adobe公司出品方便列印的文件,意為“行動式文件格式”,是由Adobe Systems用於與應用程式、作業系統、硬體無關的方式進行檔案交換所發展出的檔案格式。PDF

Java使用PegDownmarkdown檔案html格式

maven依賴: <dependency> <groupId>org.pegdown</groupId> <artifactId>pegdown</artifactId> <versio

win10平臺python檔案打包exe檔案

環境:win10,python3.5,可執行的py檔案 ##1、下載pyinstaller pip install pyinstaller 測試是否安裝成功: 在dos介面,輸入pyinstaller,出現下圖說明成功。 ##2、打包 進入dos介面,進入你想

python3.6 py檔案轉換EXE檔案

1、開啟控制檯,安裝python庫: pip install pyinstaller pip install pywin32 2、生成exe,會在py檔案同級目錄下新建一個dist資料夾,exe

exe4jjar包exe檔案

exe4j 打包 spring-boot 應用 報錯 java.lang.NoClassDefFoundError: BOOT-INF/classes/com/zekun/dev/exceltools/

通過pythonxml檔案轉換html檔案

#資料型別的轉換 def main():    maxwidth = 100  #用於規範字段的長度    print_start()    count=0    while True:        try:            line =input()            if count == 0

pandoc含有中文的markdown檔案pdf時的問題及思考

1 問題 我寫了一個markdown檔案,裡面含有中文字元,我想利用pandoc將其轉換為pdf格式,採用下面命令: pandoc -f markdown_github my.md -o test.pdf --latex-engine=xelatex

教你如何pdf檔案ppt學習文件

大家都知道在我們從網路上下載的PDF是不能編輯複製的。怎樣將PDF轉換成ppt呢?這是我們首要處理的問題。還有,免費的PDF轉換器有嗎?pdf轉ppt會不會花很長時間?相信大家在使用軟體之前這些問題是避免不了的吧。關於PDF轉成ppt一些細節,我一直接用北斗PDF轉換器軟體的PDF轉換成ex

java中如何office檔案pdf或者圖片(親測有效)

前段時間做專案時,需要將word文件在瀏覽器中開啟,一般的在瀏覽器中開啟word都是直接提示下載的,找了好久都是些pageoffice等的收費外掛,小專案成本要儘量壓縮,所以就放棄了這種收費的外掛了。突然想到有些瀏覽器能直接開啟pdf或者圖片,手機端也需要顯示圖片,所以可以

ipa 解壓出來的Windows下 亂碼的 plist 檔案 可讀的

將ipad 在Windows 下解壓後,可以看到很多plist 檔案,但是卻是亂碼的,不能直接用。 plist 檔案有兩種格式,一種是編碼後的二進位制格式,另一種是大家平時所見的 XML 格式. iphone裡的.plist檔案一般採用binary格式(編碼後的, 也就是

Pycharm下py檔案打包exe檔案

1. 在PyCharm下安裝PyInstaller2. 在Terminal下輸入:“PyInstaller -F -w *.py” 就可以製作出exe。生成的檔案放在同目錄dist下。    -F(注意大寫)是所有庫檔案打包成一個exe,-w是不出黑色控制檯視窗。    不加