python - Qt Designer - 可点击区域生成 map

标签 python qt grid

使用 Python 2.7.3 和 Qt Designer 4.8.2:我是 Qt 新手,如何创建可单击以生成 map 的简单网格区域?下图说明了我的意图。

本质上,我的主要问题是网格区域,我在 Qt 中看不到任何类似“现成的”的东西。

enter image description here

最佳答案

最接近的等价物似乎是 QTableWidget .

这是一个粗略的演示,应该可以让您朝着正确的方向开始:

from PyQt4 import QtGui, QtCore

class Window(QtGui.QWidget):
    def __init__(self, rows, columns):
        QtGui.QWidget.__init__(self)
        self.table = QtGui.QTableWidget(rows, columns, self)
        self.table.setSelectionMode(QtGui.QAbstractItemView.NoSelection)
        self.table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
        header = self.table.horizontalHeader()
        header.setResizeMode(QtGui.QHeaderView.Fixed)
        header.setDefaultSectionSize(25)
        header.hide()
        header = self.table.verticalHeader()
        header.setResizeMode(QtGui.QHeaderView.Fixed)
        header.setDefaultSectionSize(25)
        for row in range(rows):
            item = QtGui.QTableWidgetItem('0x00')
            self.table.setVerticalHeaderItem(row, item)
            for column in range(columns):
                item = QtGui.QTableWidgetItem()
                item.setBackground(QtCore.Qt.white)
                self.table.setItem(row, column, item)
        self.table.itemPressed.connect(self.handleItemPressed)
        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.table)

    def handleItemPressed(self, item):
        if item.background().color() == QtCore.Qt.black:
            item.setBackground(QtCore.Qt.white)
        else:
            item.setBackground(QtCore.Qt.black)

if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window(4, 8)
    window.resize(300, 150)
    window.show()
    sys.exit(app.exec_())

关于python - Qt Designer - 可点击区域生成 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27246244/

相关文章:

python - docker中的多进程架构

python - 如何从ManyToOne表中只获取一个对象,而不是查询集?

c++ - Qt - 无法分配给不存在的属性(自定义 C++ 类)

c++ - Qt Grid 与 QgraphicsItem 拖放

matlab - 在背景中绘制网格

FFMPEG:2x2 网格相机流到 Youtube

python - 使用 Mechanize 浏览器python查找静态字段的动态文本值

python - 如何获取从gmail python接收的电子邮件?

xcode - 让 QMake 生成正确的 .app

c# - WPF:按钮不会更改其 Grid.Column