python怎么编写流氓软件_Python 编写强制性流氓软件, 可表白, 可其它!
Python 编写强制性流氓软件, 可表白, 可其它!
来我们先看看效果:
用 Python 做了一个最近抖音上非常火的表白神器, 欢迎各位大佬指导
需求:
Python3.6
PyQT5 库
不多废话, 直接上代码:
python 学习群. png
-- coding: utf-8 --importsys
fromPyQt5importQtWidgets
fromPyQt5.QtGuiimportQFont,QIcon#QtWidgets 不包含 QFont 必须调用 QtGui
fromPyQt5importQtGui,QtCore
importrandom
classMessageBox(QtWidgets.QWidget):#继承自父类QtWidgets.QWidget
CloseAllowed=0
definit(self,parent=None):#parent=None代表此QWidget属于最上层的窗口,也就是MainWindows.
QtWidgets.QWidget.init(self)#因为继承关系,要对父类初始化
通过 super 初始化父类, init()函数无 self, 若直接 QtWidgets.QWidget.init(self), 括号里是有 self 的self.setGeometry(300,300,800,800)# setGeometry()方法完成两个功能 -- 设置窗口在屏幕上的位置和设置窗口本身的大小. 它的前两个参数是窗口在屏幕上的 x 和 y 坐标. 后两个参数是窗口本身的宽和高
#self.resize(1000, 500) # 设置窗体大小, 本行可有可无.
self.center()#自定义一个居中的函数
self.setFixedSize(self.width(),self.height());#PyQT禁止调整窗口大小和窗口最大化按钮
#self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint)#PyQT 禁止窗口最大化按钮和关闭按钮
self.setWindowTitle(u'表白神器 by Python 学习群: 125240963')# 仅仅设置窗体标题, 不设置位置.
self.setWindowIcon(QIcon('rose.png'))# 调用 QIcon 构造函数时, 我们需要提供要显示的图标的路径(相对或绝对路径). 同时注意: 使用 QIcon 类型必须导入此模块 from PyQt5.QtGui import QIcon
self.setToolTip(u'Python 学习群: 125240963 获取源码')#调用setToolTip()方法,该方法接受富文本格式的参数,之类.
QtWidgets.QToolTip.setFont(QFont('华文楷体',10))#设置字体以及字体大小
self.label1=QtWidgets.QLabel(u' 小姐姐, 观察你很久了!',self)# 建立一个标签
self.label1.move(150,40)# 使此标签移动到这个部件 (260,40) 的位置
self.label1.setFont(QFont("Timers",20));#设置字体与字体大小
self.label2=QtWidgets.QLabel(u' 做我女朋友好不好?',self)# 建立一个标签
self.label2.move(150,100)# 使此标签移动到这个部件 (260,100) 的位置
self.label2.setFont(QFont("Timers",20));#设置字体与字体大小
#Qt 中提供的调色板 QPalette 类就是专门用于管理控件的外观显示. QPalette 类相当于对话框或控件的调色板, 管理着控件和窗体的所有颜色.
#每个窗体和控件都包含一个 QPalette 对象, 在显示时, 对其做相应的设置即可
self.window_pale=QtGui.QPalette()#实例化QPalette类
self.window_pale.setBrush(self.backgroundRole(),QtGui.QBrush(QtGui.QPixmap("biu.jpg")))#打开图片
self.setPalette(self.window_pale)#应用背景色
# setStyleSheet 来设置图形界面的外观
self.buttonOK=QtWidgets.QPushButton(u'同意',self)# 因为需要增加按钮, 所以我们引入了 QPushButton 类, 该按钮是 QPushButton 类的一个实例. 构造函数的第一个参数是按钮的标签. 第二个参数是父窗口小部件. 父窗口小部件是示例窗口小部件, 它是通过 QWidget 继承的
self.buttonOK.setFocusPolicy(QtCore.Qt.NoFocus)#按钮无焦点
# Qt::TabFocus 0x1 接受 Tab 键焦点
# Qt::ClickFocus 0x2 接受鼠标单击做焦点
# Qt::StrongFocus TabFocus | ClickFocus | 0x8 接受 Tab 键和鼠标单击做焦点
# Qt::WheelFocus StrongFocus | 0x4 滑轮作为焦点选中事件
# Qt::NoFocus 0 不接受焦点
self.buttonOK.move(50,700)# move()方法来指定部件的放置坐标, 坐标的顶点就是窗口的左上角
self.buttonOK.clicked.connect(self.showDialogOK)
self.buttonE=QtWidgets.QPushButton(u'考虑考虑',self)# 因为需要增加按钮, 所以我们引入了 QPushButton 类, 该按钮是 QPushButton 类的一个实例. 构造函数的第一个参数是按钮的标签. 第二个参数是父窗口小部件. 父窗口小部件是示例窗口小部件, 它是通过 QWidget 继承的
self.buttonE.setFocusPolicy(QtCore.Qt.NoFocus)# 按钮无焦点
# Qt::TabFocus 0x1 接受 Tab 键焦点
# Qt::ClickFocus 0x2 接受鼠标单击做焦点
# Qt::StrongFocus TabFocus | ClickFocus | 0x8 接受 Tab 键和鼠标单击做焦点
# Qt::WheelFocus StrongFocus | 0x4 滑轮作为焦点选中事件
# Qt::NoFocus 0 不接受焦点
self.buttonE.move(330,700)# move()方法来指定部件的放置坐标, 坐标的顶点就是窗口的左上角
self.buttonE.clicked.connect(self.showDialogEE)
self.buttonNO=QtWidgets.QPushButton(u'拒绝',self)# 因为需要增加按钮, 所以我们引入了 QPushButton 类, 该按钮是 QPushButton 类的一个实例. 构造函数的第一个参数是按钮的标签. 第二个参数是父窗口小部件. 父窗口小部件是示例窗口小部件, 它是通过 QWidget 继承的
self.buttonNO.setFocusPolicy(QtCore.Qt.NoFocus)# 按钮无焦点
# Qt::TabFocus 0x1 接受 Tab 键焦点
# Qt::ClickFocus 0x2 接受鼠标单击做焦点
# Qt::StrongFocus TabFocus | ClickFocus | 0x8 接受 Tab 键和鼠标单击做焦点
# Qt::WheelFocus StrongFocus | 0x4 滑轮作为焦点选中事件
# Qt::NoFocus 0 不接受焦点
self.buttonNO.move(610,700)# move()方法来指定部件的放置坐标, 坐标的顶点就是窗口的左上角
self.buttonNO.clicked.connect(self.showDialogNO)
defshowDialogOK(self):
QtWidgets.QMessageBox.information(self,"欧耶","爱你, 么么么么么么么哒~~~",QtWidgets.QMessageBox.Ok)
self.CloseAllowed=1
defshowDialogEE(self):
QtWidgets.QMessageBox.information(self,"别纠结了","你完了, 你妈让你嫁给我",QtWidgets.QMessageBox.Ok)
QtWidgets.QMessageBox.information(self,"别纠结了","你爸也是这么说的",QtWidgets.QMessageBox.Ok)
QtWidgets.QMessageBox.information(self,"别纠结了","你奶奶也让你嫁给我",QtWidgets.QMessageBox.Ok)
QtWidgets.QMessageBox.information(self,"别纠结了","你哥哥也同意了, 你全家都同意",QtWidgets.QMessageBox.Ok)
QtWidgets.QMessageBox.information(self,"别纠结了","你闺蜜说嫁给我没错",QtWidgets.QMessageBox.Ok)
QtWidgets.QMessageBox.information(self,"别纠结了","你爸说不同意就打你",QtWidgets.QMessageBox.Ok)
QtWidgets.QMessageBox.information(self,"别纠结了","接受现实吧, 我会对你好的",QtWidgets.QMessageBox.Ok)
QtWidgets.QMessageBox.information(self,"别纠结了","你都是我的人了",QtWidgets.QMessageBox.Ok)
defshowDialogNO(self):
self.q=random.randint(0,650)# 在 0-650 内生成随机的 X 坐标
self.w=random.randint(150,650)# 在 150-650 内生成随机的 Y 坐标
self.buttonNO.move(self.q,self.w)
#enterEvent 事件 PyQt 自动运行, 无需调用
# def enterEvent(self,event):# 重写了鼠标的 enterEvent 事件, 由于继承了窗口类, 鼠标一进入主窗口便会出发此函数
# self.q=random.randint(0,650)# 在 0-650 内生成随机的 X 坐标
# self.w=random.randint(150,650)# 在 150-650 内生成随机的 Y 坐标
# self.buttonNO.move(self.q,self.w)
当我们关闭一个窗口时, 在 PyQt 中就会触发一个 QCloseEvent 的事件, 正常情况下会直接关闭这个窗口,
但是我们不希望这样的事情发生, 所以我们需要重新定义 QCloseEvent, 函数名称为 closeEvent 不可变defcloseEvent(self,event):#函数名固定不可变
ifself.CloseAllowed==1:
event.accept()#关闭窗口
else:
QtWidgets.QMessageBox.information(self,"未作回应","小姐姐, 请不要逃避!",QtWidgets.QMessageBox.Ok)
event.ignore()#忽视点击X事件
defcenter(self):
screen=QtWidgets.QDesktopWidget().screenGeometry()#获取屏幕分辨率
QtWidgets.QDesktopWidget().screenGeometry()中 QDesktopWidget()也有括号size=self.geometry()#获取窗口尺寸
self.move((screen.width()-size.width())/2,(screen.height()-size.height())/2)#利用move函数窗口居中
app=QtWidgets.QApplication(sys.argv)
window=MessageBox()
window.show()
sys.exit(app.exec_())
想要发给你自己喜欢的人, 肯定是需要打包成 exe 的呀
!/usr/bin/env python
-- coding: utf-8 --"""title ='将 calculator 项目转换为 exe 文件'author ='遂越净郝'"""
fromPyInstaller.mainimportrun
ifname=='main':
opts=['douyin.py','-w','--onefile']
#opts = ['douyin.py', '-F']
#opts = ['douyin.py', '-F', '-w']
#opts = ['douyin.py', '-F', '-w', '--icon=TargetOpinionMain.ico','--upx-dir','upx391w']
run(opts)
来源: http://www.jianshu.com/p/9389cc9e8eb4
python怎么编写流氓软件_Python 编写强制性流氓软件, 可表白, 可其它!相关推荐
- python中用函数编写程序_python编写程序,在程序中定义一个函数,计算1+1/2+1/3+1/4+……+1/n...
python语言编写的程序需要运行库.Python(英语发音:/?pa?θ?n/),是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于 ...
- python实现商品管理系统_python编写商品管理
# 1.实现一个商品管理的程序. # #输出1,添加商品 2.删除商品 3.查看商品 # 添加商品: # 商品的名称:xxx 商品如果已经存在的话,提示商品商品已经存在 # 商品的价格:xxxx 数量 ...
- python如何实现隔行_Python编写循环的两个建议 | 鹅厂实战
作者 | piglei(腾讯高级工程师) 转载自腾讯技术工程知乎专栏 循环是一种常用的程序控制结构.我们常说,机器相比人类的最大优点之一,就是机器可以不眠不休的重复做某件事情,但人却不行.而" ...
- python画魔法阵_Python编写循环的两个建议 | 鹅厂实战!
本文系 "Python 工匠"系列的第 7 篇文章,已取得作者授权. 循环是一种常用的程序控制结构.我们常说,机器相比人类的最大优点之一,就是机器可以不眠不休的重复做某件事情,但人 ...
- python实现单机斗地主_Python编写斗地主游戏(单机版)
斗地主玩法介绍: 斗地主是三个人玩,两个人斗一个地主,地主20张牌.农民每人17张牌. 王炸:大王+小王 是最大牌,可以炸别人任意的牌,单张的话 大王比小王大,两者都可以代替任意牌型. 第二大是炸弹: ...
- 用python做一个木马_Python编写简易木马程序
light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Subli ...
- python爬虫实践目的_Python编写爬虫实践
爬虫的基本流程 网络爬虫的基本工作流程如下: 首先选取一部分精心挑选的种子URL 将种子URL加入任务队列 从待抓取URL队列中取出待抓取的URL,解析DNS,并且得到主机的ip,并将URL对应的网页 ...
- python数独解题器_Python编写的超帅数独可视化解题器
数独相信大家都玩过,它被称为"聪明人的游戏",在很多人眼里: 会玩数独=高智商 为什么?因为数独能够培养观察力,提高反应力:数独的练习能够锻炼手眼脑的协调性.提高手脑并用的能力,锻 ...
- python压力测试模块_Python编写服务器压力测试小工具(仅供测试)
想知道你的网站能支持多少用户一起访问吗?想知道你的网站在遭遇DDOS时能坚持多长时间嘛? 此文章只适用于Apache服务器,不适用于Nginx及其它服务器.考虑到Apache服务器的特性,一个连接对应 ...
最新文章
- JDK5中的控制台输入
- HDU2227(非降子序列的个数)
- 如何从ngrx store中获取Observable对象
- 堆(Heap)大根堆、小根堆
- win10 如何锁定计算机,Win10 1909 专业版怎么锁定计算机屏幕
- C++类的继承与多重继承的访问控制【protected,private继承方式】
- java pipeline 实现_Docker+Jenkins+Pipeline实现持续集成(二)java项目构建
- 如何在装有 macOS Monterey 的 Mac 上使用省电模式?
- 矩阵对应元素相乘_图网络(GNN)前传 : 图与矩阵的兄弟情结
- 通信原理基础知识概括
- 使用云函数+云调用,四步实现微信支付
- 春季校园招聘简历投递量已超去年同期;亚太房地产市场现逢低买入良机 | 美通企业日报...
- 基于网易云信WebRTC的Web音视频实现
- 主题美化 —— IAR篇
- 虚拟机服务器安装虚拟机的步骤
- 印象笔记粘贴HTML,【未解决】Mac中从印象笔记中拷贝图片后去VSCode中用Paste Image无法粘贴图片:There is not a image in clipboard...
- Method的invoke()方法的使用
- 并发容器J.U.C -- AQS组件(一)
- node.js把前台传来的base64码转成图片存放
- XILINX FPGA各型号差异对比