Hello,
Avec les codes ci-dessous, j'ai bien une fenêtre qui s'ouvre, mais rien ne s'affiche. Savez-vous pourquoi?
app.py
views.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #!/usr/bin/env python import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QGridLayout from views import Main class TerraSoft(QMainWindow): def __init__(self, parent=None): super(TerraSoft, self).__init__(parent) self.setWindowTitle('TerraSoft') self.setWindowState(Qt.WindowMaximized) # load ihm self.main = Main(self) # Place ihm self._widget = QWidget() self._layout = QGridLayout(self._widget) self._layout.addWidget(self.main) self.setCentralWidget(self._widget) if __name__ == '__main__': app = QApplication(sys.argv) ex = TerraSoft() ex.show() sys.exit(app.exec_())
module: family/views.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 import sys from PyQt5.QtCore import Qt from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QApplication, QWidget, qApp, QAction, QSplitter, QMenuBar, QToolBar, QGridLayout, QStatusBar from Family.views import FamilyTreeView from Specie.views import EventsTableView class Main(QWidget): """description of class""" def __init__(self, parent): super(Main, self).__init__(parent) # init menu menubar = QMenuBar() fileMenu = menubar.addMenu('File') #init toolbar exitAct = QAction(QIcon('exit24.png'), 'Exit', self) exitAct.setShortcut('Ctrl+Q') exitAct.triggered.connect(qApp.quit) toolbar = QToolBar() # init elements of widget familyTreeView = FamilyTreeView(self) eventsTableView = EventsTableView(self) #init splitters HSplitter = QSplitter(Qt.Horizontal) VSplitter = QSplitter(Qt.Vertical) # add elements to splitters HSplitter.addWidget(familyTreeView) HSplitter.addWidget(eventsTableView) grid = QGridLayout() grid.addWidget(HSplitter) #status bar statusBar = QStatusBar().showMessage('Bienvenue dans TerraSoft')
module: Specie/views.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 import sys from PyQt5.QtCore import Qt from PyQt5.QtGui import QStandardItemModel, QStandardItem from PyQt5.QtWidgets import QApplication, QWidget, QTreeView families = [ ("Craspedocephalus", [ ("puniceus", []), ("trigonocephalus", []) ]), ("Trimeresurus", [ ("albolabris", []) ]), ("Elapidé", []) ] class FamilyTreeView(QWidget): """description of class""" def __init__(self, parent): super(FamilyTreeView, self).__init__(parent) self.familyList = QTreeView() self.familyList.setMaximumWidth(300) self.model = QStandardItemModel() self.addItems(self.model, families) self.familyList.setModel(self.model) self.model.setHorizontalHeaderLabels([self.tr("Familles")]) def addItems(self, parent, elements): for text, children in elements: item = QStandardItem(text) parent.appendRow(item) if children: self.addItems(item, children)
Je n'ai pas d'erreur en soit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 import sys from PyQt5.QtCore import Qt from PyQt5.QtGui import QStandardItemModel, QStandardItem from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTreeView class EventsTableView(QWidget): """description of class""" def __init__(self, parent): super(EventsTableView, self).__init__(parent) self.eventsTable = QTableWidget() self.eventsTable.setColumnCount(3) self.eventsTable.setHorizontalHeaderLabels(('Date', 'Catégorie', 'Description'))
Par avance, merci![]()
Partager