Tôi đang cố gắng kết nối tín hiệu click() của nút với chức năng của riêng tôi. Các nút trong một widget mà tôi tạo ra với QT Designer. Tôi tải tệp .ui với QUiLoader như vậy:Cách triển khai tín hiệu/khe được xác định trong 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"
Đây có phải là cách chính xác để kết nối với nút bấm() tín hiệu không? Tôi thấy rằng tôi có thể nối dây tín hiệu và khe cắm trực tiếp trong Nhà thiết kế Qt, nhưng làm thế nào để tôi chuẩn bị và nhận được các kết nối như vậy trong mã? Câu hỏi phụ: Mã ở trên hoạt động, nhưng cửa sổ chính hiển thị ở kích thước sai. Làm thế nào để đảm bảo rằng nó xuất hiện với kích thước phù hợp? Tôi có nên làm điều này với giới hạn chiều cao/chiều rộng tối thiểu không?
Cảm ơn các tác phẩm độc đáo! Vấn đề kích thước lại, thiết lập kích thước tối thiểu trong Qt Designer đã giúp. Tôi nghĩ có lẽ có một cách lập trình để đảm bảo cửa sổ chính có kích thước để tất cả các vật dụng bên trong nó có thể nhìn thấy được. – Sven
Re QUiLoader, không có lý do cụ thể, khác hơn là nó là đơn giản. Đối với phương pháp 'pyuic4', tôi sẽ phải nghiên cứu cách làm cho Eclipse/PyDev tự động khởi động 'pyuic4' đối với các tệp .ui. – Sven
@Sven. Xem câu trả lời cập nhật của tôi về thay đổi kích thước: Tôi chắc chắn đó là vấn đề về bố cục. – ekhumoro