2011-12-13 51 views
5

kullanıcı arabirimini dinamik olarak oluşturmak için PySide'deki QUiLoader ve UI dosyalarını kullanma Python arasındaki bağlantı yuvalarını Qt DesignerUI dosyalarına bağlamakta zorlanıyorum. ben PySide bulabildiğim tüm öğreticiler atlattık (ex: http://zetcode.com/gui/pysidetutorial/eventsandsignals/)Çalışma zamanında

Onun kodda GUI kurarken oldukça kolaydır, ama biz gerçekten Qt Designer ve UI dosyaları kullanmak istiyorum.

Diğer bazı konuları sadece .ui.py dosyaları dönüştürmek için pyuic kullanımına işaret, ancak onun mümkünse ben gerçekten çalışma zamanında bunu yapmak istiyorum.

İşte kodum şu ana kadar.

def initUI(self):  

    loader = QUiLoader() 
    file = QFile("designer_test.ui") 
    file.open(QFile.ReadOnly) 
    myWidget = loader.load(file, self) 
    #print(dir(myWidget)) 
    file.close() 

    layout = QtGui.QVBoxLayout() 
    layout.addWidget(myWidget) 
    self.setLayout(layout) 

    connectBtn = QtGui.QPushButton("Connect", self) 

    connectBtn.clicked.connect(self.connectClicked) 

    myWidget.setWindowTitle('Window') 
    myWidget.show() 

def connectClicked(self): 
    print("works") 

cevap

3

bu sayfayı kontrol ettiniz: nasıl UI dosyasında Connect için connectBtn bağlamak için hiçbir ipucu var Using a Designer UI File in Your Application

O C++ için, ama kavramlar aynıdır düşünüyorum python'da yapmaya çalıştığın şey.

Bu sayfaya göre, UI dosyası tarafından oluşturulan widget'ları bulmak için findChild() çağırmanız gerekir.

Ayrıca, this question.

0

Bu konuda bana yardımcı olması için bu auto-connector yaptım ... lütfen bir göz atın.

+0

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. – cpburnz

İlgili konular