Example #1
0
class Demo(QWidget):
    def __init__(self):
        super(Demo, self).__init__()
        self.resize(600, 300)
        self.model = QDirModel(self)  # 1
        self.model.setReadOnly(False)
        self.model.setSorting(QDir.Name | QDir.IgnoreCase)

        self.tree = QTreeView(self)  # 2
        self.tree.setModel(self.model)
        self.tree.clicked.connect(self.show_info)
        self.index = self.model.index(QDir.currentPath())
        self.tree.expand(self.index)
        self.tree.scrollTo(self.index)

        self.info_label = QLabel(self)  # 3

        self.v_layout = QVBoxLayout()
        self.v_layout.addWidget(self.tree)
        self.v_layout.addWidget(self.info_label)
        self.setLayout(self.v_layout)

    def show_info(self):  # 4
        index = self.tree.currentIndex()
        file_name = self.model.fileName(index)
        file_path = self.model.filePath(index)
        file_info = 'File Name: {}\nFile Path: {}'.format(file_name, file_path)
        self.info_label.setText(file_info)
Example #2
0
class MyCentralWidget(QWidget):
    def __init__(self, parent=None, flags=Qt.WindowFlags()):
        super().__init__(parent=parent, flags=flags)
        self.initUI()
        self.pix = ''

    def initUI(self):
        hbox = QHBoxLayout(self)

        self.lefttopframe = MyPixmap()
        # self.lefttopframe.frameWidth = 40
        self.lefttopframe.setMinimumWidth(150)
        self.lefttopframe.setFrameShape(QFrame.StyledPanel)
        # leftbottomframe = QFrame(self)
        self.dirmodel = QDirModel()
        qtree = QTreeView()
        qtree.setMaximumWidth(300)
        qtree.setModel(self.dirmodel)
        qtree.setRootIndex(
            self.dirmodel.index(QDir.currentPath() + '/mapeditor/Maps'))
        qtree.doubleClicked.connect(self.tree_clicked)

        # leftbottomframe.setFrameShape(QFrame.StyledPanel)
        splitter = QSplitter(Qt.Vertical)
        splitter.handleWidth = 20
        splitter.addWidget(self.lefttopframe)
        splitter.addWidget(qtree)

        self.rightframe = MyPixmap(self)
        # rightframe.set_tileset()
        self.rightframe.setFrameShape(QFrame.StyledPanel)
        splitter2 = QSplitter(Qt.Horizontal)
        splitter2.addWidget(splitter)
        splitter2.addWidget(self.rightframe)

        hbox.addWidget(splitter2)
        self.setLayout(hbox)

    def tree_clicked(self, idx):
        print(self.dirmodel.fileName(idx))
        self.rightframe.set_tileset(QDir.currentPath() + '/mapeditor/' +
                                    self.dirmodel.filePath(idx))

    def paintEvent(self, e):
        painter = QPainter(self)
        if self.pix != '':
            painter.drawPixmap(self.lefttopframe.rect(), self.pix)

    def set_tileset(self, path):
        # print ('set tileset %s' % path)
        self.path = path
        self.pix = QPixmap()
        self.pix.load(path)