python - 如何使 QTableWidget 中的单元格只读?

标签 python qt pyqt4 qtablewidget

我有以下代码定义我的应用程序的图形用户界面

class Ui (object):
    def setupUi():
        self.tableName = QtGui.QTableWidget(self.layoutWidget_20)
        self.tableName.setObjectName(_fromUtf8("twHistoricoDisciplinas"))
        self.tableName.setColumnCount(4)
        self.tableName.setRowCount(3)

以及我应用中的以下代码

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        self.ui = Ui()
        self.ui.setupUi(self)
        self.createtable()

    #creating a tw cell
    def cell(self,var=""):
            item = QtGui.QTableWidgetItem()
            item.setText(var)
            return item

    def createtable(self):
         rows = self.tableName.rowCount()
         columns = self.tableName.columnCount()
         for i in range(rows):
             for j in range(columns):
                 item = self.cell("text")
                 self.ui.tableName.setItem(i, j, item)

我希望能够添加新的行和列并进行编辑,但我想锁定一些单元格。 (我已经有了扩展表格的代码) 我怎样才能让一些单元格只读,同时保持其他单元格读写? 我找到了这个链接How to make a column in QTableWidget read only?有了 C++ 中问题的解决方案,python 解决方案是否相似?

编辑:从帖子中删除了答案并粘贴为答案

最佳答案

我稍微玩了一下代码并阅读了更多文档 问题的答案是

def createtable(self):
     rows = self.tableName.rowCount()
     columns = self.tableName.columnCount()
     for i in range(rows):
         for j in range(columns):
             item = self.cell("text")
             # execute the line below to every item you need locked
             item.setFlags(QtCore.Qt.ItemIsEnabled)
             self.ui.tableName.setItem(i, j, item)

解决方案是“item.setFlags(QtCore.Qt.ItemIsEnabled)”行,你用它来设置单元格属性QtCore.Qt.ItemIsEnabled为禁用,所以你不能选择或编辑单元格

您可以根据 http://doc.qt.io/archives/qt-4.8/qt.html 上的文档以这种方式在运行时更改许多其他属性在 Qt::ItemFlag 部分下

正如 Sven 在对这个问题的第二个答案的评论中提到的,如果您的 QTableWidgetItem 中有静态数量的行和列,您可以使用 Qtdesigner 选择单元格的属性,如果您使用它来创建屏幕你的申请

关于python - 如何使 QTableWidget 中的单元格只读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7727863/

相关文章:

python - Python 中 matplotlib 和 seaborn 之间的绘图不一致

c++ - 为什么qt不读取文件

python - PyQt4——添加文本编辑区动画示例

python - 将列表转换为表 - python

python - 如何从 python 中的 df 中提取每小时数据?

qt - QInputMethodEvent 用法的任何示例?

qt - 如何使用 Yocto 项目正确配置 Qt SDK?

python - QTabBar 既不完全展开也不均匀地间隔选项卡

python - PyQt4 "Mainwindow.show()"给出类型错误

python - 为什么 Python pexpect 与此处换行的预期提示不匹配