2016-06-21 29 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