Próbuję podłączyć sygnał click() przycisku do mojej własnej funkcji. Przycisk znajduje się w widżecie utworzonym za pomocą QT Designer. I załadować plik .ui z QUiLoader tak:Jak zaimplementować sygnał/gniazdo zdefiniowane w 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"
Czy to poprawny sposób podłączenia przycisku kliknięciu sygnał()? Widzę, że mogę łączyć sygnały i gniazda bezpośrednio w Qt Designer, ale jak mogę przygotować i dostać się do takich wire-upów w kodzie? Pytanie boczne: Powyższy kod działa, ale główne okno wyświetla się w niewłaściwym rozmiarze. Jak upewnić się, że pojawia się w odpowiednim rozmiarze? Czy powinienem to zrobić przy minimalnych ograniczeniach wysokości/szerokości?
Dzięki ładnie działa! Problem z wielkością rozmiaru, ustawienie minimalnych rozmiarów w Qt Designer pomógł. Pomyślałem, że być może istnieje programowy sposób, aby upewnić się, że główne okno ma rozmiar tak, że wszystkie widżety w nim są widoczne. – Sven
Re QUiLoader, bez konkretnego powodu, poza tym, że jest prosty. Dla podejścia 'pyuic4', będę musiał zbadać, jak zrobić, aby Eclipse/PyDev uruchamiał' pyuic4' automatycznie dla plików .ui. – Sven
@Sven. Zobacz moją zaktualizowaną odpowiedź na temat zmiany rozmiaru: jestem prawie pewien, że jest to problem z układem. – ekhumoro