2011-08-22 10 views
26

में QtDesigner की .ui फ़ाइलों को लोड करना मैं एक सरल उदाहरण की तलाश कर रहा हूं कि एक पायथन एप्लिकेशन में QtDesigner जेनरेट की गई .ui फ़ाइल को सीधे लोड कैसे करें।पायसाइड

मैं बस pyuic4 का उपयोग करने से बचना चाहता हूं।

उत्तर

33

पीईक्यूटी के विपरीत, पायसाइड ने QUiLoader कक्षा को सीधे .ui फ़ाइलों में पढ़ने के लिए लागू किया है। जुड़ा हुआ प्रलेखन से,

loader = QUiLoader() 
file = QFile(":/forms/myform.ui") 
file.open(QFile.ReadOnly) 
myWidget = loader.load(file, self) 
file.close() 
+15

में उल्लिखित बस साथ noobs मदद करने के लिए if __name__ == "__main__": उपयोग कर सकते हैं: QUiLoader 'PySide.QtUiTools.QUiLoader' – brews

+0

से है सभी मैं यह है:' QPixmap: एक से पहले एक QApplication का निर्माण अवश्य QPaintDevice निरस्त (कोर डंप किया गया) ' – Lucio

+1

@ लुइसियो इस उत्तर में कोड स्निपेट अलगाव में उपयोग नहीं किया जा सकता है। एक पूर्ण उदाहरण के लिए बैरीपी के जवाब का पालन करें। – JBentley

36

PySide और .ui फ़ाइलों को पूरा noobs के लिए, यहाँ एक पूरा उदाहरण है:

from PySide import QtCore, QtGui, QtUiTools 


def loadUiWidget(uifilename, parent=None): 
    loader = QtUiTools.QUiLoader() 
    uifile = QtCore.QFile(uifilename) 
    uifile.open(QtCore.QFile.ReadOnly) 
    ui = loader.load(uifile, parent) 
    uifile.close() 
    return ui 


if __name__ == "__main__": 
    import sys 
    app = QtGui.QApplication(sys.argv) 
    MainWindow = loadUiWidget(":/forms/myform.ui") 
    MainWindow.show() 
    sys.exit(app.exec_()) 
+0

आपको बहुत धन्यवाद –

+0

इस @Necronomicron आज़माएं – 101

2

एक और प्रकार, एक छोटा लोड निर्देश के आधार पर, https://askubuntu.com/questions/140740/should-i-use-pyqt-or-pyside-for-a-new-qt-project#comment248297_141641 पर पाया । (मूल रूप से, आप सभी उस फ़ाइल खोलने और बंद करने से बच सकते हैं।)

import sys 
from PySide import QtUiTools 
from PySide.QtGui import * 

app = QApplication(sys.argv) 
window = QtUiTools.QUiLoader().load("filename.ui") 
window.show() 
sys.exit(app.exec_()) 

नोट्स:

  • filename.ui अपने .py फ़ाइल को उसी फ़ोल्डर में होना चाहिए।
  • आप के रूप BarryPye's answer
संबंधित मुद्दे