PyQt5 - 随机移动按钮位置

博客主要包含代码内容,涉及Python和Qt技术。Python是常用的后端开发语言,Qt可用于开发跨平台应用程序,代码可能是两者结合实现特定功能。

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

代码

# -*- coding: utf-8 -*-
# @Author   : zbz

'''
    4个按钮
'''

import sys
import random
from PyQt5.QtWidgets import QApplication, QPushButton, QWidget
from PyQt5.QtGui import QIcon

btns = []


# 随机某个按钮 随机移动 到某个位置
def when_btn_onclick():
    print("按钮(点我试试) 被点击了")
    btn = random.choice(btns)
    position = (random.randint(1, 500), random.randint(1, 400))
    btn.move(*position)
    print("某个按钮移动到了 {}".format(position))
    print("x: {}, y: {}, width: {}, height: {}".format(widget.x(), widget.y(), widget.width(), widget.height()))


# 退出窗口程序
def when_btn2_onclick():
    print("按钮(退出) 被点击了")
    app = QApplication.instance()
    app.quit()


# 显示窗口信息
def when_btn3_onclick():
    print("按钮(显示窗口信息) 被点击了")
    print("窗口信息:", end="")
    print("x: {}, y: {}, width: {}, height: {}".format(widget.x(), widget.y(), widget.width(), widget.height()))


# 还原按钮的初始位置
def when_btn4_onclick():
    print("按钮(归位) 被点击了")
    btn.move(100, 200)
    btn2.move(300, 200)
    btn3.move(200, 300)
    btn4.move(200, 100)


app = QApplication(sys.argv)
widget = QWidget()
icon_path = "./ico/Porsche.ico"
widget.setWindowIcon(QIcon(icon_path))
btn = QPushButton(widget)
btns.append(btn)
btn.setText("点我试试")  # 点我试试:按钮名称
btn.clicked.connect(when_btn_onclick)
btn.move(100, 200)

btn2 = QPushButton(widget)
btns.append(btn2)
btn2.setText("退出")  # 退出:按钮名称
btn2.clicked.connect(when_btn2_onclick)
btn2.move(300, 200)

btn3 = QPushButton(widget)
btns.append(btn3)
btn3.setText("显示窗口信息")  # 显示窗口信息:按钮名称
btn3.clicked.connect(when_btn3_onclick)
btn3.move(200, 300)

btn4 = QPushButton(widget)
btns.append(btn4)
btn4.setText("归位")  # 归位:按钮名称
btn4.clicked.connect(when_btn4_onclick)
btn4.move(200, 100)

widget.resize(500, 400)  # 设置窗口大小
widget.move(200, 100)
widget.show()

sys.exit(app.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值