47 lines
1.9 KiB
Python
47 lines
1.9 KiB
Python
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton, QGridLayout, QTreeWidget, QTreeWidgetItem
|
|
|
|
class ChunkPanel(QWidget):
|
|
def __init__(self, parent):
|
|
super().__init__(parent)
|
|
self.parent = parent
|
|
layout = QVBoxLayout(self)
|
|
self.chunkInfoLabel = QLabel("Tile Information")
|
|
layout.addWidget(self.chunkInfoLabel)
|
|
|
|
# Nav buttons
|
|
grid = QGridLayout()
|
|
self.btnUp = QPushButton("U")
|
|
self.btnN = QPushButton("N")
|
|
self.btnDown = QPushButton("D")
|
|
self.btnW = QPushButton("W")
|
|
self.btnS = QPushButton("S")
|
|
self.btnE = QPushButton("E")
|
|
|
|
grid.addWidget(self.btnUp, 0, 0)
|
|
grid.addWidget(self.btnN, 0, 1)
|
|
grid.addWidget(self.btnDown, 0, 2)
|
|
grid.addWidget(self.btnW, 1, 0)
|
|
grid.addWidget(self.btnS, 1, 1)
|
|
grid.addWidget(self.btnE, 1, 2)
|
|
layout.addLayout(grid)
|
|
|
|
# Add expandable tree list
|
|
self.tree = QTreeWidget()
|
|
self.tree.setHeaderLabel("Chunks")
|
|
# Example tree items
|
|
parentItem = QTreeWidgetItem(self.tree, ["Chunk 1"])
|
|
childItem1 = QTreeWidgetItem(parentItem, ["Tile A"])
|
|
childItem2 = QTreeWidgetItem(parentItem, ["Tile B"])
|
|
parentItem2 = QTreeWidgetItem(self.tree, ["Chunk 2"])
|
|
QTreeWidgetItem(parentItem2, ["Tile C"])
|
|
QTreeWidgetItem(parentItem2, ["Tile D"])
|
|
self.tree.expandAll() # Expand by default, remove if you want collapsed
|
|
layout.addWidget(self.tree, 1) # Give tree stretch factor so it expands
|
|
|
|
# Event subscriptions
|
|
self.btnN.clicked.connect(lambda: self.parent.map.moveRelative(0, -1, 0))
|
|
self.btnS.clicked.connect(lambda: self.parent.map.moveRelative(0, 1, 0))
|
|
self.btnE.clicked.connect(lambda: self.parent.map.moveRelative(1, 0, 0))
|
|
self.btnW.clicked.connect(lambda: self.parent.map.moveRelative(-1, 0, 0))
|
|
self.btnUp.clicked.connect(lambda: self.parent.map.moveRelative(0, 0, 1))
|
|
self.btnDown.clicked.connect(lambda: self.parent.map.moveRelative(0, 0, -1)) |