We are working on FreePDM https://github.com/grd/FreePDM
The file is src/gui/MainWindow.py that is called from main.py in the root.
When I select an item to go to a different directory for instance or to show the content of a file, I would suggest to use a double click. How can I do this? How can I go to a different directory? Or show the contents of a file?
How can I double click an item?
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
How can I double click an item?
About Nim. Latest Release 2.0.2. Here is Nim in 100 seconds and a Nim package. There are Qt and OCCT packages.
Re: How can I double click an item?
does this help (quickly nailed together from an example found on the net):
??
Code: Select all
import sys
from PySide2 import QtWidgets, QtCore
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
self.resize(600, 600)
self.fileBrowserWidget = QtWidgets.QWidget(self)
self.setCentralWidget(self.fileBrowserWidget)
self.dirmodel = QtWidgets.QFileSystemModel()
# Don't show files, just folders
self.dirmodel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.AllDirs)
self.folder_view = QtWidgets.QTreeView(parent=self);
self.folder_view.setModel(self.dirmodel)
self.folder_view.clicked[QtCore.QModelIndex].connect(self.clicked)
self.folder_view.setHeaderHidden(True)
self.folder_view.hideColumn(1)
self.folder_view.hideColumn(2)
self.folder_view.hideColumn(3)
self.selectionModel = self.folder_view.selectionModel()
self.filemodel = QtWidgets.QFileSystemModel()
# Don't show folders, just files
self.filemodel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Files)
self.file_view = QtWidgets.QListView(parent=self);
self.file_view.setModel(self.filemodel)
self.file_view.doubleClicked.connect(self.fileDoubleClicked)
self.file_view.clicked.connect(self.fileClicked)
splitter_filebrowser = QtWidgets.QSplitter()
splitter_filebrowser.addWidget(self.folder_view)
splitter_filebrowser.addWidget(self.file_view)
splitter_filebrowser.setStretchFactor(0,2)
splitter_filebrowser.setStretchFactor(1,4)
hbox = QtWidgets.QHBoxLayout(self.fileBrowserWidget)
hbox.addWidget(splitter_filebrowser)
def set_path(self):
self.dirmodel.setRootPath("")
def clicked(self, index):
# the signal passes the index of the clicked item
dir_path = self.filemodel.filePath(index)
root_index = self.filemodel.setRootPath(dir_path)
self.file_view.setRootIndex(root_index)
def fileDoubleClicked(self):
print('double clicked')
def fileClicked(self):
print('click on a file')
app = QtWidgets.QApplication(sys.argv)
main = MainWindow()
main.show()
main.set_path()
sys.exit(app.exec_())
Cheers,
Markus
Markus
Re: How can I double click an item?
Yes, I managed it. There are still some issues but I can handle that. Thanks! I pushed it on github.
About Nim. Latest Release 2.0.2. Here is Nim in 100 seconds and a Nim package. There are Qt and OCCT packages.