我有一个使用python和PyQt4构建的简单GUI。用户在程序中输入一些内容后,程序应该根据用户的输入内容在UI中添加一定数量的复选框。出于测试目的,我从一开始就在应用程序中存在一个复选框,该复选框嵌套在QVBoxLayout中,QVBoxLayout嵌套在QGroupBox中。我已经试着阅读了PyQt4文档,但我一直在努力取得任何进展。
下面是我如何制作初始复选框(QtCreator的基本输出):
self.CheckboxField = QtGui.QGroupBox(self.GuiMain)
self.CheckboxField.setGeometry(QtCore.QRect(10, 70, 501, 41))
self.CheckboxField.setObjectName("CheckboxField")
self.verticalLayoutWidget = QtGui.QWidget(self.CheckboxField)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 10, 491, 21))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.CheckboxLayout = QtGui.QVBoxLayout(self.verticalLayoutWidget)
self.CheckboxLayout.setSizeConstraint(QtGui.QLayout.SetMinimumSize)
self.CheckboxLayout.setObjectName("CheckboxLayout")
self.checkBox = QtGui.QCheckBox(self.verticalLayoutWidget)
self.checkBox.setObjectName("checkBox")
self.CheckboxLayout.addWidget(self.checkBox)
下面是我首次尝试添加新复选框(在单独的文件中):
checkBox1 = QtGui.QCheckBox(self.window.CheckboxField)
checkBox1.setGeometry(QtCore.QRect(90, 10, 70, 17))
checkBox1.setText(QtGui.QApplication.translate("MainWindow", "Bob Oblaw", None, QtGui.QApplication.UnicodeUTF8))
checkBox1.setObjectName("checkBox1")
self.window.CheckboxLayout.addWidget(checkBox1)
self.window.CheckboxLayout.stretch(1)
self.window.CheckboxField.adjustSize()
self.window.CheckboxField.update()
没有错误,复选框不显示。
我认为你通过复制QtCreator的输出风格让自己的生活变得艰难。我认为手动编写一些ui代码以了解其工作原理很重要。我怀疑你没有在布局中添加复选框。试试这个(这里用Import*表示清楚):
最后我自己想出来了。一部分是我的错,另一部分有点老套(因为它可能没有使用Qt函数)。以下是我的解决方案:
首先,我需要把所有的东西都放在一个网格布局上,这样当我添加它们时,我的复选标记就开始出现了
相关问题 更多 >
编程相关推荐