pyqt5 setSizePolicy 两个参数说明

self.radiotbtn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
参数1: QSizePolicy.Expanding 水平扩展策略
参数2: QSizePolicy.Fixed 垂直扩展策略

from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QSizePolicy
from PyQt5 import QtCore, QtGui, QtWidgets


class MainWindow(QWidget):

    def __init__(self):
        super().__init__(parent=None)
        self.setupUi()

    def setupUi(self):
        self.setWindowTitle('RFID tool')
        formLayout = QtWidgets.QFormLayout()

        qlabel = QtWidgets.QLabel()
        qlabel.setText('读取串口')
        hlayout = QtWidgets.QHBoxLayout()
        self.qcombobox = QtWidgets.QComboBox()
        hlayout.addWidget(self.qcombobox)
        self.radiotbtn = QtWidgets.QRadioButton()
        self.radiotbtn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
        self.radiotbtn.setText('绑定串口号')
        hlayout.addWidget(self.radiotbtn)
        formLayout.addRow(qlabel, hlayout)

        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:24px
        }
    '''
    mainui = MainWindow()
    mainui.setStyleSheet(qssStyle)
    mainui.show()
    sys.exit(app.exec_())

效果图

拉伸窗口前效果
在这里插入图片描述
拉伸窗口后效果

说明:由于 radiotbtn 设置了水平扩展,垂直固定,因此当窗口拉伸的时候,radiotbtn 会把拉伸空间抢占,导致 qcombobox 不会变动。

不设置时候,radiotbtnqcombobox 会均分拉伸空间
在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt是一个Python的GUI编程框架,它提供了与Qt C++框架相同的API。PyQt Signal是一种机制,用于在对象之间通信。当一个对象的状态发生改变时,它可以发射一个信号,该信号被连接到另一个对象的槽函数上,从而执行一些操作。 如果您要传递两个参数,可以使用QSignalMapper类来实现。QSignalMapper是一个信号映射器,它可以将不同的信号映射到一个共同的槽函数上,并且可以将参数传递给该槽函数。 下面是一个示例代码,演示了如何在PyQt中使用QSignalMapper来传递两个参数: ```python from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QSignalMapper from PyQt5.QtWidgets import QApplication, QWidget, QPushButton class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.btn1 = QPushButton("Button 1", self) self.btn1.move(30, 50) self.btn2 = QPushButton("Button 2", self) self.btn2.move(150, 50) self.mapper = QSignalMapper(self) self.mapper.mapped[str].connect(self.on_clicked) self.mapper.setMapping(self.btn1, "Button 1 clicked") self.mapper.setMapping(self.btn2, "Button 2 clicked") self.btn1.clicked.connect(self.mapper.map) self.btn2.clicked.connect(self.mapper.map) self.setGeometry(300, 300, 290, 150) self.setWindowTitle('QSignalMapper') self.show() @pyqtSlot(str) def on_clicked(self, text): print(text) if __name__ == '__main__': app = QApplication([]) ex = Example() app.exec_() ``` 在上述代码中,我们创建了两个按钮,并将它们分别连接到QSignalMapper的map()槽函数上。然后,我们将这两个按钮映射到一个共同的槽函数on_clicked()上,并且将不同的参数传递给该槽函数。当我们单击任意一个按钮时,都会发出一个信号,并将文本参数传递给on_clicked()槽函数,然后输出该参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值