网络编程
位置:首页>> 网络编程>> Python编程>> 我喜欢你 抖音表白程序python版

我喜欢你 抖音表白程序python版

作者:遂越净郝  发布时间:2023-06-11 12:54:17 

标签:python,抖音,表白

本文实例为大家分享了python抖音表白神器,供大家参考,具体内容如下


# -*- coding: utf-8 -*-

import sys
from PyQt5 import QtWidgets
from PyQt5.QtGui import QFont,QIcon#QtWidgets不包含QFont必须调用QtGui
from PyQt5 import QtGui,QtCore
import random

class MessageBox(QtWidgets.QWidget):#继承自父类QtWidgets.QWidget
CloseAllowed=0
def __init__(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'表白神器-powered by 遂越净郝') # 仅仅设置窗体标题,不设置位置。
 self.setWindowIcon(QIcon('rose.png')) # 调用QIcon构造函数时,我们需要提供要显示的图标的路径(相对或绝对路径)。同时注意:使用QIcon类型必须导入此模块from PyQt5.QtGui import QIcon
 self.setToolTip(u'知乎搜索<b>遂越净郝</b>获取源码')#调用setToolTip()方法,该方法接受富文本格式的参数,css之类。
 QtWidgets.QToolTip.setFont(QFont('华文楷体', 10))#设置字体以及字体大小
 self.label1 = QtWidgets.QLabel(u'<b>小姐姐,观察你很久了!</b>', self) # 建立一个标签
 self.label1.move(150, 40) # 使此标签移动到这个部件(260,40)的位置
 self.label1.setFont(QFont("Timers", 20));#设置字体与字体大小
 self.label2= QtWidgets.QLabel(u'<b>做我女朋友好不好?</b>', 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)

def showDialogOK(self):
 QtWidgets.QMessageBox.information(self, "欧耶", "爱你,么么么么么么么哒~~~", QtWidgets.QMessageBox.Ok)
 self.CloseAllowed = 1

def showDialogEE(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)

def showDialogNO(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不可变
def closeEvent(self,event):#函数名固定不可变

if self.CloseAllowed==1:
  event.accept()#关闭窗口
 else:
  QtWidgets.QMessageBox.information(self, "未作回应", "小姐姐,请不要逃避!", QtWidgets.QMessageBox.Ok)
  event.ignore()#忽视点击X事件
def center(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__ = '遂越净郝'
"""
from PyInstaller.__main__ import run

if __name__ == '__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)

运行结果请阅读原文。

来源:https://zhuanlan.zhihu.com/p/38284396

0
投稿

猜你喜欢

  • 在蓝色看到的几个js日历代码,整理了一下。大家可以用在blog上,或者可以用在表单的日期类型的数据选择中,方便大家填写日期。1.动感的日历,
  • 用下列代码即可:<%On error resume nextSet session=Creat
  • 原文:Five quick JavaScript tips真是五个很quick的小提示:1.只在<form>元素上使用submi
  • Q. How can I restrict access to my SQL Server so that it only allows c
  • 很早之前就在PJ的blog上看到可以用VS2005调试ASP程序,但是没有写出具体的步骤,后来一次偶尔也让我找到了方法,但是一直没把它写出来
  • 决定数据类型的第一步是定义所存数数据的分类: 数值型, 字符串型还是临时型等;除了一些特别的并不是那么直观的外, 这通常是很直观的。接下来是
  • 判断字符串长度函数:<SCRIPT LANGUAGE="JavaScript"><!--fu
  • 自从web2.0之后,网页设计开始走向实用设计的阶段,越来越多的设计师注意到“为表达信息而设计”。着迷于前段时间黑白灰老师给大家介绍的“in
  • 首先得抛出个重要的前提观点,大屏幕、宽屏幕根本不是为方便“扫视”准备的。所以说以内容为基础的网站设计不用考虑超宽、超大的场景,甚至包括服务类
  • 这篇论坛文章(赛迪网技术社区)详细讲解了SQL Server海量数据导入的最快方法,更多内容请参考下文:最近做某项目的数据库分析,要实现对海
  • 在国外一博客看到的技巧,终于解决IE的这个老大难问题。我在IE的setAttribute bug也提到其解决方法,一是innerHTML,一
  • 之前整理发表了《XMLHTTPRequest的属性和方法简介》,它ajax要使用的核心的技术之一,现在就来实际运用它。这个Ajax标签导航,
  • 一:从版本3.23升级到4.104.10新特性:支持事务处理和存储过程升级过程的注意事项:1:升级采用直接复制安装文件的方法,简单实用,但要
  • 一、原因:今天在尝试初始化一个WEB应用的时候,发现其连接不上MySQL,从Traceback看到使用的默认密码为‘YES’。没辙,居然尝试
  • 利用oracle的dbms_random包结合rownum来实现,示例如下,随机取499户:select * from ( select *
  • <% On Error Resume Next Const uploadPath = "/uploads/" &#
  • jquery作为一款高质量的框架被大多web开发者所推崇。jquery也的确是一款伟大的产品,在实际开发中明显提高了效率。但是任何产品并不是
  • 一、conn.asp<%  '@Language="VBSCRIPT" CO
  • 我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们通常的做法都是通过export with rows=no来得到,但它的输
  • 数据库在时回加for xml auto调用方法   SqlCommand SqlComm=
手机版 网络编程 asp之家 www.aspxhome.com