J'utilise PYQT5 pour créer une application GUI qui aura 2 onglets. Sur un onglet ('tImp') je veux utiliser un navigateur de fichiers, sur l'autre onglet (tRec) je veux avoir un bouton-poussoir. J'ai codé ce que je veux voir sur l'onglet, mais quand j'exécute le script, je vois les onglets, mais pas le contenu (navigateur de fichiers et bouton poussoir). Voici ce que j'ai jusqu'à présent:Contenu de l'onglet python pyqt5 ne pas afficher
import sys from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QWidget, QAction, QTabWidget,QVBoxLayout, QInputDialog, QLineEdit, QFileDialog from PyQt5.QtGui import QIcon
class App(QMainWindow):
def __init__(self):
super().__init__()
self.title = 'Budget'
self.left = 10
self.top = 40
self.width = 1200
self.height = 600
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.table_widget = MyTableWidget(self)
self.setCentralWidget(self.table_widget)
self.show()
class MyTableWidget(QWidget):
def __init__(self, parent):
super(QWidget, self).__init__(parent)
self.layout = QVBoxLayout(self)
# Initialize tab screen
self.tabs = QTabWidget()
self.tImp = QWidget()
self.tRec = QWidget()
self.tabs.resize(1200,600)
# Create Import tab
def tImp():
self.tImp.layout = QVBoxLayout(self)
self.tImp.layout.addWidget(self.openFileNamesDialog)
self.tImp.setLayout(self.tImp.layout)
# Create file browser Widget
def openFileNamesDialog(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
files, _ = QFileDialog.getOpenFileNames(self,"QFileDialog.getOpenFileNames()", "","All Files (*);;Format Files (*.csv)", options=options)
if files:
print(files)
# Create Reconcile tab
def tRec():
self.tRec.layout = QVBoxLayout(self)
self.pushButton1 = QPushButton("Commit")
self.tRec.layout.addWidget(self.pushButton1)
self.tRec.setLayout(self.tRec.layout)
# Add tabs
self.tabs.addTab(self.tImp,"Import")
self.tabs.addTab(self.tRec,"Reconcile")
# Add tabs to widget
self.layout.addWidget(self.tabs)
self.setLayout(self.layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
Toute aide serait appréciée.
Merci. Désolé, je suis un peu nouveau à la programmation OO (comme vous pouvez probablement le dire). J'ai créé 'def tImp', puis dans la section "#Add tabs" et j'ai pensé que la ligne "self.tabs.addTab (self. ** tImp **," Import ")" aurait appelé la fonction. J'ai ajouté "tRec()" à la fin de la section "# Ajouter des onglets au widget" et cela semble fonctionner. (Bien que mon tImp() rencontre des problèmes pour une autre raison ... mais c'est pour un autre article) – SRev
Notez que 'self.tImp' n'est pas la même chose que la fonction' tImp' que vous avez créée. Sur une ligne précédente, vous avez fait 'self.tImp = QWidget()'. C'est ce que 'self.tImp' est. 'tImp' est juste une variable locale contenant une fonction qui n'est jamais appelée. – BrenBarn