PYQT5 for循环动态创建变量名,对应同一个槽函数,响应输出对应的按钮名称

本博客介绍了一个使用 PyQt5 开发的地图选择窗口应用程序。该程序能够根据源目录中地图文件的数量动态调整窗口大小,并通过滚动区域展示所有地图选项。每个地图按钮都与其文件名对应,并在点击时触发事件打印文件名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
import os

class SelectMapWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        w = QWidget()
        self.setCentralWidget(w)

        self.topFiller = QWidget()
        self.topFiller.setMinimumSize(250, len(os.listdir("source/map"))*50+30)
        self.mainGroupLayOut()

        scroll = QScrollArea()
        scroll.setWidget(self.topFiller)

        vbox = QVBoxLayout()
        vbox.addWidget(scroll)
        w.setLayout(vbox)
        self.resize(300, 500)


    def mainGroupLayOut(self):
        number = 0
        self.varList = os.listdir("source/map")

        for filename in os.listdir("source/map"):
            self.varList[number] = QPushButton(self.topFiller)
            self.varList[number].setText(str(filename))

            self.varList[number].clicked.connect(lambda: self.MapButton_clicked(self.sender().text()))#########连接槽函数并把自身变量名传递过去

            self.varList[number].move(10,(number+1)*50)
            number += 1



    def MapButton_clicked(self,number):
        print(number)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = SelectMapWindow()
    window.show()
    sys.exit(app.exec_())

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值