2016-06-21 10 views
0

Как установить x ось QLabel точного центра окна? У меня есть этот примерPyQt5 задает ось QLabel x автоматически центр окна

from PyQt5.QtWidgets import QMainWindow,QApplication,QLabel 
from PyQt5 import QtCore 
import sys 

class cssden(QMainWindow): 
    def __init__(self): 
     super().__init__() 

     self.mwidget = QMainWindow(self) 
     self.setWindowFlags(QtCore.Qt.FramelessWindowHint) 
     self.setFixedSize(700,400) 

     self.label = QLabel(self) 
     self.label.setText("Center of the window") 
     self.label.setStyleSheet("color:green;" 
             "font: bold 20pt 'Arial'") 
     self.label.setGeometry(150,200,300,100) 
     self.show() 

app = QApplication(sys.argv) 
app.setStyleSheet("QMainWindow{background-color: rgb(30,30,30);border: 2px solid rgb(20,20,20)}") 
ex = cssden() 
sys.exit(app.exec_()) 

Что делать на self.label.setGeometry так, чтобы этикетка будет в центре окна все время? Есть ли способ, например, setCenter()?

ответ

0

Используйте вертикальную компоновку. Метка будет расширяться, чтобы заполнить доступное пространство, и текст будет выровнен по центру по умолчанию:

from PyQt5.QtWidgets import QWidget, QVBoxLayout 

class cssden(QMainWindow): 
    def __init__(self): 
     super().__init__() 

     self.setWindowFlags(QtCore.Qt.FramelessWindowHint) 
     self.setFixedSize(700,400) 

     self.label = QLabel(self) 
     self.label.setText("Center of the window") 
     self.label.setStyleSheet("color:green;" 
             "font: bold 20pt 'Arial'") 

     self.label.setAlignment(QtCore.Qt.AlignCenter)   

     widget = QWidget(self) 
     layout = QVBoxLayout(widget) 
     layout.addWidget(self.label) 

     self.setCentralWidget(widget) 

     self.show() 
+0

Это еще не центр окна. Это на левой стороне. – GLHF

+0

@ GLHF. Просто измените выравнивание текста (я обновил код). – ekhumoro

+0

Теперь он находится в верхнем левом углу. – GLHF

 Смежные вопросы

  • Нет связанных вопросов^_^