Oct-02-2018, 02:05 PM
This should get you started:
#!/usr/bin/python3 import sys from PyQt5 import QtCore, QtGui, QtWidgets class Main(QtWidgets.QMainWindow): def __init__(self): super().__init__() self.ui = QtWidgets.QWidget(self) self.setCentralWidget(self.ui) self.ui.tree = Tree() self.ui.button = QtWidgets.QPushButton("Validate") self.ui.button.clicked.connect(self.validate) self.ui.layout = QtWidgets.QVBoxLayout() self.ui.layout.addWidget(self.ui.tree) self.ui.layout.addWidget(self.ui.button) self.ui.setLayout(self.ui.layout) self.show() def validate(self): print("Checked:") for item in range(self.ui.tree.topLevelItemCount()): item = self.ui.tree.topLevelItem(item) if bool(item.checkState(0)): print(item.text(0), item.text(1)) class Tree(QtWidgets.QTreeWidget): def __init__(self): super().__init__() self.setHeaderLabels(["Name", "Path"]) self.fill() def fill(self): apps = \ { 'Nexus Mod Manager': 'C:\\Games\\Nexus Mod Manager\\NexusClient.exe', 'CCleaner': 'E:\\Program Files\\CCleaner\\CCleaner.exe' } for key, value in iter(apps.items()): item = QtWidgets.QTreeWidgetItem() item.setCheckState(0, QtCore.Qt.Unchecked) item.setText(0, key) item.setText(1, value) self.addTopLevelItem(item) if __name__== '__main__': app = QtWidgets.QApplication([]) gui = Main() sys.exit(app.exec_())