2017-09-27 6 views
0

Mon expérience:un Centrer QTextEdit dans PyQt5

Je suis confiant en Python en général, mais je suis nouveau à PyQt5.

Qu'est-ce que je travaille sur:

J'utilise actuellement PyQt5 pour Python 3.6 pour construire un éditeur de texte, il a toutes les fonctionnalités de base d'un éditeur de texte normal aurait par exemple l'enregistrement des fichiers, ouverture de fichiers, modification des polices, etc.

ma question

actuellement, j'ai construit une mise en page de base pour mon programme contenant une barre de menu avec différents boutons, je suis maintenant au point d'ajouter la case « textEdit » dans le programme, mais il le fait semble pas au centre de l'interface utilisateur:

The textbox

La zone de texte est relativement faible par rapport à la taille de la fenêtre d'ensemble, donc actuellement je suis reparti avec un petit coin supérieur gauche zone de texte aligné. Comment puis-je centrer cette zone de texte et la faire passer dans toute la fenêtre.

Ma principale classe:

class App(QMainWindow): 
    def __init__(self): 
     super().__init__() 
     self.title = 'Text Editor' 
     self.left = 10 
     self.top = 10 
     self.width = 1080 
     self.height = 920 
     self.text = QTextEdit(self) 

    self.initUI() 

Répondre

1

Vous pouvez ajouter le QTextEdit comme le widget central de QMainWindow comme indiqué ci-dessous:

class App(QMainWindow): 
    def __init__(self): 
     super().__init__() 
     self.title = 'Text Editor' 
     self.left = 10 
     self.top = 10 
     self.width = 1080 
     self.height = 920 

     self.text = QTextEdit(self) 
     self.setCentralWidget(self.text) 

Screenshot:

enter image description here

Ou ajoutez-le insi de le widget central à travers une mise en page:

class App(QMainWindow): 
    def __init__(self): 
     super().__init__() 
     self.title = 'Text Editor' 
     self.left = 10 
     self.top = 10 
     self.width = 1080 
     self.height = 920 

     self.widget = QWidget(self) 

     self.text = QTextEdit(self.widget) 
     self.widget.setLayout(QVBoxLayout()) 
     self.widget.layout().addWidget(self.text) 

     self.setCentralWidget(self.widget) 

Screenshot:

enter image description here