PyQt QTableView 与 QComboBox

发布于 2024-11-05 07:36:42 字数 242 浏览 4 评论 0原文

我正在使用 QTableView 显示数据库中的信息。我希望这些字段显示为组合框,以便用户可以轻松修改它们。 我读了很多关于自定义委托项目和标志必须设置为 IsUserCheckable 的内容,但我不明白所有这些应该如何工作。 我尝试了一些关于标志和角色的操作,但完全没有效果,所以确实缺少一些重要的东西

我真的很感激这方面的工作代码示例,或者至少有一些很好的解释(如果有人手头有的话):)

I am displaying informations from a Database with a QTableView. I would like the fields to be displayed as a combobox so the user can modify them easily.
I read a lot of things about custom delegate items and flags having to be set to IsUserCheckable, but I don't understand how all of this is supposed to work.
I tried a couple of things with the flags and role, but with strictly no effect, so there really is something important that I am missing.

I would really appreciate a working code example of this, or at least some nice explanation if someone has that at hand :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巴黎盛开的樱花 2024-11-12 07:36:42

这里有一些示例,但如果您想要更高级的内容,请参阅 QItemDelegate 类参考

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QMainWindow):

    def __init__(self):
        super(Example, self).__init__()

        table= QtGui.QTableWidget(5, 5)
        self.setCentralWidget(table)
        combobox = QtGui.QComboBox()
        combobox.addItem('one')
        combobox.addItem('two')        
        table.setCellWidget(3, 4, combobox)


if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = Example()
    window.setWindowTitle('ComboBox in Table Example')
    window.resize(600, 400)
    window.show()
    sys.exit(app.exec_())

Here some example, but if you want something more advanced see QItemDelegate Class Reference.

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QMainWindow):

    def __init__(self):
        super(Example, self).__init__()

        table= QtGui.QTableWidget(5, 5)
        self.setCentralWidget(table)
        combobox = QtGui.QComboBox()
        combobox.addItem('one')
        combobox.addItem('two')        
        table.setCellWidget(3, 4, combobox)


if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    window = Example()
    window.setWindowTitle('ComboBox in Table Example')
    window.resize(600, 400)
    window.show()
    sys.exit(app.exec_())
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文