【发布时间】:2015-12-04 03:46:14
【问题描述】:
我正在尝试使用复选框执行this。
遗憾的是,它是为 C++ 制作的,任何对 Python 代码的改编都会导致此错误:'QWidget' object is not callable
我想做的是在每一行添加一个复选框,这是我的代码:
pWidget = QWidget()
pCheckbox = QCheckBox()
pLayout = QVBoxLayout()
pLayout.addWidget(pCheckbox)
pLayout.setAlignment(Qt.AlignCenter)
pLayout.setContentsMargins(0, 0 ,0, 0)
pWidget.setLayout(pLayout)
for char in accounts:
for columnNumber in range(numberColumns):
chkBoxItem = QTableWidgetItem()
chkBoxItem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
chkBoxItem.setCheckState(Qt.Unchecked)
self.mainAccountTable.insertRow(currentRowCount)
self.mainAccountTable.setItem(currentRowCount, 0, pWidget(chkBoxItem))
self.mainAccountTable.setItem(currentRowCount, 1, QTableWidgetItem(data[1]))
如果我输入pLayout = Layout() 表示它没有在 Python 中实现。
那么,我怎样才能添加在中心对齐的复选框,而不是每行附近的文本区域?提前感谢您的任何提示。
稍后编辑: 在循环内移动代码是有效的,但我无法控制检查:
for char in accounts:
for columnNumber in range(numberColumns):
pWidget = QWidget()
pCheckbox = QCheckBox()
pLayout = QVBoxLayout(pWidget)
pLayout.addWidget(pCheckbox)
pLayout.setAlignment(Qt.AlignCenter)
pLayout.setContentsMargins(0, 0 ,0, 0)
pWidget.setLayout(pLayout)
#chkBoxItem = QTableWidgetItem()
#chkBoxItem.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
#chkBoxItem.setCheckState(Qt.Unchecked)
self.mainAccountTable.insertRow(currentRowCount)
self.mainAccountTable.setCellWidget(currentRowCount, 0, pWidget)
这是screenshoot我怎么知道我检查和构建的集合列表?
【问题讨论】:
标签: python checkbox pyqt qtablewidget pyqt5