python - 我有 PyQt4 GUI,我想以复选框的形式列出文件。但复选框仅显示目录中的最后一个文件
问题描述
from PyQt4 import QtGui, QtCore
from PyQt4.QtCore import Qt
import os
ch = []
class Window(QtGui.QWidget):
def __init__(self, rows, columns):
QtGui.QWidget.__init__(self)
self.table = QtGui.QTableWidget(rows, columns, self)
layout = QtGui.QVBoxLayout(self)
for row in range(rows):
qwidget = QtGui.QWidget()
checkbox = QtGui.QCheckBox()
checkbox.setCheckState(QtCore.Qt.Unchecked)
qhboxlayout = QtGui.QHBoxLayout(qwidget)
qhboxlayout.addWidget(checkbox)
qhboxlayout.setAlignment(Qt.AlignCenter)
qhboxlayout.setContentsMargins(0, 0, 0, 0)
self.table.setCellWidget(row, 0, qwidget)
for filename in os.listdir("C:\\Python27\\Codes\\"):
files = os.path.splitext(filename)[0]
ch.append(files)
self.table.setItem(row, 1, QtGui.QTableWidgetItem(str(files)))
layout.addWidget(self.table)
self.button = QtGui.QPushButton()
self.button.setObjectName("loadButton")
#layout.addWidget(self.table)
layout.addWidget(self.button)
self.button.clicked.connect(self.ButtonClicked)
def ButtonClicked(self):
checked_list = []
for i in range(self.table.rowCount()):
if self.table.cellWidget(i, 0).findChild(type(QtGui.QCheckBox())).isChecked():
checked_list.append(self.table.item(i, 1).text())
print checked_list
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window(50, 2)
window.resize(350, 300)
window.show()
sys.exit(app.exec_())
解决方案
n = 0
for filename in os.listdir("C:\\Python27\\Codes\\"):
files = os.path.splitext(filename)[0]
self.table.setItem(n, 1, QTableWidgetItem(str(files)))
n = n+1
注意:你不需要这个循环:for row in range(rows):
推荐阅读
- javascript - 如何优化图形
- reactjs - 堆积条形图不显示时间序列 X 轴的条形值 - ReactJS Recharts
- ios - 如何使用 Objective C os_log API 从 iOS 设备读取日志?
- python - TensorFlow 中用于时间序列分类的 1D CNN
- javascript - 模块对象返回 null
- swagger-ui - 使用 fastify 在 REST API 中添加文档
- spring-boot - 使用托管在 Cloud Foundry 上的 Nginx 服务器运行的静态 Web 的 Spring Boot SideCar 应用程序
- java - 存储函数式接口定义并通过 lambdas 定义的对象叫什么?
- c++ - 如何使用 WIN32 C/C++ API 告诉 Windows 10 平铺、居中或拉伸桌面壁纸?
- powerbi - 如何使用 IF 在 Power BI 中创建度量?