Sto provando a collegare il segnale click() di un pulsante alla mia funzione. Il pulsante si trova in un widget che ho creato con QT Designer. I caricare il file .ui con QUiLoader in questo modo:Come implementare un segnale/slot definito in Qt Designer
class MyWidget(QtGui.QMainWindow):
def __init__(self, *args):
QtGui.QMainWindow.__init__(self, *args)
loader = QtUiTools.QUiLoader()
file = QtCore.QFile("pyside_ui_qtdesigner_form_test.ui")
file.open(QtCore.QFile.ReadOnly)
self.myWidget = loader.load(file, self)
file.close()
self.setCentralWidget(self.myWidget)
btn = self.myWidget.findChild(QtGui.QPushButton, "HelloWorldButton")
btn.clicked.connect(self.slot1)
def slot1(self):
print "Received"
È questo il modo corretto per la connessione al pulsante cliccato del segnale()? Vedo che posso collegare segnali e slot direttamente in Qt Designer, ma come faccio a prepararmi e ad accedere a tali wire-up nel codice? Domanda laterale: il codice sopra funziona, ma la finestra principale mostra la dimensione sbagliata. Come posso assicurarmi che appaia con le giuste dimensioni? Dovrei farlo con i limiti minimi di altezza/larghezza?
Grazie funziona bene! Risolti i problemi relativi alle dimensioni, l'impostazione delle dimensioni minime in Qt Designer ha aiutato. Ho pensato che forse esiste un modo programmatico per garantire che la finestra principale sia dimensionata in modo che tutti i widget al suo interno siano visibili. – Sven
Re QUiLoader, nessun motivo specifico, diverso da quello è semplice. Per l'approccio 'pyuic4', dovrò cercare come fare in modo che Eclipse/PyDev avvii' pyuic4' automaticamente per i file .ui. – Sven
@Sven. Vedi la mia risposta aggiornata sul ridimensionamento: sono abbastanza sicuro che sia un problema di layout. – ekhumoro