0
Я пишу QtWidget, который отображает QComboBox (выпадающее меню) с помощью PyQt5. Тем не менее, он становится пустым. Кто-нибудь знает, почему?QtWidget, отображающий QComboBox, пуст
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Test(QtWidgets.QWidget):
def __init__(self, formname = "Test"):
super().__init__()
self.formname = formname
self.impute_methods = ["Method 1", "Method 2"]
def setupUi(self, Form):
Form.setObjectName(self.formname)
Form.resize(1154, 902)
self._create_buttons(Form)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def _create_buttons(self, Form):
self.test_box = QtWidgets.QComboBox()
self.test_box.addItems(self.impute_methods)
self.test_box.setGeometry(QtCore.QRect(110, 190, 150, 27))
self.test_box.setObjectName("test_box")
def selectionchange(self, i):
print(i)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate(self.formname, "Test"))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
tester = QtWidgets.QDialog()
ui = Test()
ui.setupUi(tester)
tester.show()
sys.exit(app.exec_())
Вот скриншот того, что я вижу:
Потому что вы не использовали макет. – ekhumoro
Не могли бы вы рассказать об этом немного, возможно, в комментариях? Благодарю. – Alex
'layout = QtWidgets.QVBoxLayout (self); layout.addWidget (self.test_box) '. [Управление макетами] (https://doc.qt.io/qt-4.8/layout.html). – ekhumoro