设置控件在窗口中实现垂直居中 qlabel.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QSizePolicy
from PyQt5 import QtCore, QtGui, QtWidgets
class MainWindow(QWidget):
def __init__(self, edits):
super().__init__(parent=None)
self.setupUi(edits)
def setupUi(self, edits:dict):
self.setWindowTitle('RFID tool')
formLayout = QtWidgets.QFormLayout()
if 1 == 1:
qlabel = QtWidgets.QLabel()
qlabel.setText('RFID读取串口')
hlayout = QtWidgets.QHBoxLayout()
self.qcombobox = QtWidgets.QComboBox()
hlayout.addWidget(self.qcombobox)
self.radiotbtn = QtWidgets.QRadioButton()
self.radiotbtn.setText('绑定端口号')
hlayout.addWidget(self.radiotbtn)
formLayout.addRow(qlabel, hlayout)
for edit_name, label_name in edits.items():
qlabel = QtWidgets.QLabel()
qlabel.setText(label_name)
setattr(self, edit_name, QtWidgets.QLineEdit())
getattr(self, edit_name).setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
formLayout.addRow(qlabel, getattr(self, edit_name))
qlabel = QtWidgets.QLabel()
qlabel.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
qlabel.setText('校验结果')
self.result_info = QtWidgets.QTextEdit()
formLayout.addRow(qlabel, self.result_info)
self.setLayout(formLayout)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
qssStyle = '''
* {
font-size:30px
}
'''
edits = {'rfid': 'RFID', 'id_L': '电子标签(大)', 'id_S': '电子标签(小)', 'local_id': '本地通信模块'}
mainui = MainWindow(edits)
mainui.setStyleSheet(qssStyle)
mainui.show()
sys.exit(app.exec_())
效果图
xxx 的所属的 label 标签在 formlayout 中垂直居中