国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~

這篇具有很好參考價值的文章主要介紹了【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

專欄
Python零基礎入門篇??
Python網(wǎng)絡蜘蛛??
Python數(shù)據(jù)分析
Django基礎入門寶典??
小玩意兒??
Web前端學習
tkinter學習筆記
Excel自動化處理

? 真的來咯~

??Hello!大家好,有好幾天沒有跟大家見面咯~不知道大家是否在等待《小玩意兒》專欄的更新呢??
上一篇的文章??【老師見打系列】:我只是寫了一個自動回復討論的腳本~

感覺挺受大伙的喜歡的呢,非常感謝各位兄弟給哥們頂上熱榜??,你們的支持就是我更新的動力??
所以這幾天我就在想是否繼續(xù)往【老師見打系列】更新文章,想出一些能讓”老師見打“的idear,當然,我并不是要故意惹老師生氣的哈……

【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~,小玩意兒,python,django,開發(fā)語言

直到前天,突然想寫點什么,于是打開了pycharm,當我正在想著還有什么好的idear的時候,突然看到了左下角的一個py文件,”爆炸信息.py“??我啥時候寫的?那時的我一臉懵逼的看著文件里的代碼,腦海里沒有任何有關于它的記憶,不會是哥們夢游的時候給敲的吧……??
【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~,小玩意兒,python,django,開發(fā)語言

仔細把代碼看了個遍,突然腦海里才回想起在某年某月某日閑著沒事干瞎寫了這么一個代碼??,當我再次運行的時候,彈出了一個在我看來丑……呃呃呃那個……界面不太好看的窗口,于是點擊窗口發(fā)送信息……欸呀我滴媽?。?!這這這,運行個啥,代碼太短,功能太少,界面還丑八怪咿呀咿呀~
【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~,小玩意兒,python,django,開發(fā)語言
說時遲那時快,突然冒出一個idear??,為啥不把這個代碼完善一下呢?搞個好看整潔一點的界面,到時候再寫一篇文章,文章名我都想好了,你看那標題,起得這么熟練!咱們說干就干??

于是哥們又挺著千年老腰,花了兩三個小時的時間敲出一個還算不錯的代碼,用了一下,效果很好,我兄弟把我好友給刪了……
【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~,小玩意兒,python,django,開發(fā)語言

開個玩笑??好了,具體實現(xiàn)效果如何,請各位看官往下看??

??爆炸信息窗口

適當娛樂,請勿打擾他人正常生活哦??


??設計思路

我是這樣想的,如果只簡單的寫一個單一信息發(fā)送就太無趣了,于是我就像每次得發(fā)不同的話,那才有意思,于是就想到了txt文件,但是,只有文字是不是效果不強,于是想到了下最流行的交流方式:表情包,誒~這就齊了(當然各位還有其他的idear可以在評論區(qū)里評論哈??)

??模塊準備

  • tkinter?不行,窗口界面差點意思,那就用 ttkbootstrap模塊,ttkbootstrap 是一個基于 tkinter 的界面美化庫,使用這個工具可以開發(fā)出類似前端 bootstrap 風格的 tkinter 桌面程序,但是還是得用到tkinter中的文件讀取函數(shù)
  • pynput模塊,pynput是一個監(jiān)聽、操作鍵盤鼠標庫,主要用來實現(xiàn)消息的發(fā)送,咱們的招數(shù)能不能放出去就靠它了
  • time模塊,time用來控制放招的間隔,咱們得講究攻守進退呀!
  • ctypes模塊,
  • os模塊,主要用來查找文件,配合ttkbootstrap,擦出大火花??
  • PIL模塊,可以叫它圖像處理工具包,用來讀取表情包
  • win32con模塊,此模塊與pywin32配合使用,模塊中定義了Windows下關于圖形操作的API
  • win32clipboard模塊,它的功能主要有剪切中文、圖片等信息,表情包能不能發(fā)出去就靠它了??
  • pyautogui模塊,主要用來控制按下鍵盤的Ctrl+V鍵,相信各位對Ctrl C 和 Ctrl V的操作相當之熟練了吧??

??刪除好友警告??

先給大家開一下演示結果,帶不帶勁
?? 以下高能,娛樂有度?? 請勿頻繁使用 ?? 刪除好友警告??

  • 第一式:只說一句??
    【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~,小玩意兒,python,django,開發(fā)語言

  • 第二式:唐僧念經??(發(fā)送txt文件中的內容)
    【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~,小玩意兒,python,django,開發(fā)語言

  • 第三式:不說了,扔圖??(發(fā)送表情包)
    【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~,小玩意兒,python,django,開發(fā)語言

源代碼

from tkinter import filedialog, Tk, Label
import ttkbootstrap as tk
from ttkbootstrap.constants import *
from pynput.keyboard import Key, Controller as key
from pynput.mouse import Button as Bu, Controller as mouse_el
import time
from ctypes import *
import os
from PIL import Image
import win32con, win32clipboard
import pyautogui


"""
============= 窗口設計 ===========
"""
class Explosion_window(tk.Frame):
    # master等待接收根窗口對象,app等待接收自定義的模塊
    def __init__(self, master=None, app=None):
        tk.Frame.__init__(self, master)
        self.master = master
        self.pack()
        # 調用在根窗口創(chuàng)建組件的函數(shù)
        self.createWidget()

    def createWidget(self):
        tk.Label(self, text='IT工藤新一 爆炸信息窗口', font=('華文行楷', 25)).grid(row=0, column=0, pady=10)
        tk.Button(self, text='第一式:我只說一句', command=self.first_formula, bootstyle=SUCCESS).grid(row=1, column=0, pady=10)
        tk.Button(self, text='第二式:唐僧念經', command=self.second_formula, bootstyle=SUCCESS).grid(row=2, column=0, pady=10)
        tk.Button(self, text='第三式:不說了,扔圖', command=self.three_formula, bootstyle=SUCCESS).grid(row=3, column=0, pady=10)

    # 第一式
    def first_formula(self):
        root_1 = tk.Toplevel() # 實例化一個頂級類窗口
        root_1.title('第一式')
        root_1.geometry('500x300')
        tk.Label(root_1, text='第一式:我只說一句', font=('華文行楷', 22)).grid(row=0, column=1, pady=10)
        tk.Label(root_1, text='招數(shù)內容:', font=('華文行楷', 15)).grid(row=1,column=0)
        tk.Label(root_1, text='放招次數(shù):', font=('華文行楷', 15)).grid(row=2, column=0)
        tk.Label(root_1, text='放招間隔(s):', font=('華文行楷', 15)).grid(row=3, column=0)

        words = tk.StringVar() # 接收用戶輸入的文字
        times = tk.IntVar() # 結束放招次數(shù)
        time_interval = tk.IntVar() # 接收放招間隔

        tk.Entry(root_1, textvariable=words, font=('黑體', 15)).grid(row=1, column=1, pady=10)
        tk.Entry(root_1, textvariable=times, font=('黑體', 15)).grid(row=2, column=1, pady=10)
        tk.Entry(root_1, textvariable=time_interval, font=('黑體', 15)).grid(row=3, column=1, pady=10)
        tk.Button(root_1, text='確定放招', command=lambda: app.first_move(words.get(), times.get(), time_interval.get(), root_1), bootstyle=(SUCCESS, OUTLINE)).grid(row=4, column=1)
        root_1.mainloop()

    def second_formula(self):
        formula = 2
        self.second_three_formula(formula) # 調用放招函數(shù)

    def three_formula(self):
        formula = 3
        self.second_three_formula(formula)  # 調用放招函數(shù)

    def second_three_formula(self, formula): # 第二、第三式的窗口一樣,為了提高代碼的重用性,用選擇判斷語句進行操作
        root_2 = tk.Toplevel()

        if formula == 2:
            title1 = '第二式:唐僧念經'
            text1 = '選擇txt文件'
            tk.Button(root_2, text='確定放招', command=lambda: app.second_move(filepath.get(), time_interval.get(), root_2),
                      bootstyle=(SUCCESS, OUTLINE)).grid(row=3, column=1, pady=10)

        elif formula == 3:
            title1 = '第三式:不說了,扔圖'
            text1 = '選擇表情包文件夾'
            tk.Button(root_2, text='確定放招', command=lambda: app.three_move(filepath.get(), time_interval.get(), root_2),
                      bootstyle=(SUCCESS, OUTLINE)).grid(row=3, column=1, pady=10)

        root_2.title(title1)
        root_2.geometry('700x190')
        filepath = tk.StringVar()  # 接收路徑
        time_interval = tk.IntVar()  # 接收放招間隔
        tk.Label(root_2, text=title1, font=('華文行楷', 22)).grid(row=0, column=1)
        tk.Label(root_2, text='文件路徑:', font=('華文行楷', 15)).grid(row=1, column=0)
        tk.Label(root_2, text='放招間隔(s):', font=('華文行楷', 15)).grid(row=2, column=0)

        def select_file(filepath):  # 選擇
            # 選擇文件夾
            if formula == 2:
                select_file_path = filedialog.askopenfilename()  # 使用askopenfilename函數(shù)選擇單個文件
            elif formula == 3:
                select_file_path = filedialog.askdirectory() # askdirectory選擇文件夾
            filepath.set(select_file_path)

        tk.Entry(root_2, textvariable=filepath, font=('黑體', 15)).grid(row=1, column=1)
        tk.Entry(root_2, textvariable=time_interval, font=('黑體', 15)).grid(row=2, column=1)
        tk.Button(root_2, text=text1, command=lambda: select_file(filepath)).grid(row=1, column=2, pady=10)

    # 倒計時
    def count_down(self, info=None):
        pass


"""
=============== 功能實現(xiàn) ================
"""
class Send_information(object):
    def __init__(self):
        pass

    # 放招函數(shù),用于第一、二式
    def Release_moves(self, words=None, times=0, time_interval=0, txt_li=None): # times接收發(fā)送的次數(shù),time_interval接收發(fā)送的時間間隔
        keyboard = key()  # 獲取鍵盤權限
        mouse = mouse_el()  # 獲取鼠標權限
        mouse.press(Bu.left)  # 鼠標左鍵點擊
        mouse.release(Bu.left)  # 鼠標左鍵松開
        n = 5
        print('請在五秒內將鼠標放到聊天框內并點擊?。?!')
        for k in range(5):
            print(f'倒計時{n - k}秒')
            time.sleep(1)  # 程序運行等待五秒你是豬

        if times == 0:
            for i in txt_li:
                keyboard.type(f"{i}")  # 輸入框的內容
                keyboard.press(Key.enter)  # 回車鍵按下
                keyboard.release(Key.enter)  # 回車鍵松開
                time.sleep(time_interval)
        else:
            for i in range(times):
                keyboard.type(f"{words}")  # 輸入框的內容
                keyboard.press(Key.enter)  # 回車鍵按下
                keyboard.release(Key.enter)  # 回車鍵松開
                time.sleep(time_interval)


    # 接收用戶輸入的數(shù)據(jù)
    def first_move(self, words, times, time_interval, root_1):
        root_1.destroy()
        self.Release_moves(words=words, times=times, time_interval=time_interval) # 調用放招函數(shù)


    # 接收用戶選擇的文件路徑
    def second_move(self, txt_path, time_interval, root_2):
        root_2.destroy()
        txt_li = [] # 保存txt中的語句
        with open(txt_path, 'r', encoding='utf-8') as f:
            for line in f: # 循環(huán)遍歷輸出txt文件內容
                if line in ['\n', '\r\n']: # 判空處理
                    pass
                elif line.strip() == "": # 空行直接跳過
                    pass
                else:
                    txt_li.append(line.strip()) # 將內容保存到txt中
        self.Release_moves(txt_li=txt_li, time_interval=time_interval) # 調用放招哈數(shù)


    # 接收用戶選擇的圖片
    def three_move(self, photo_path, time_interval, root_3):
        root_3.destroy()
        filepath = [photo_path + '/' + file for file in os.listdir(photo_path)] # 拼接路徑
        i = 0
        n = 5
        print('請在五秒內將鼠標放到聊天框內并點擊!?。?)
        for k in range(5):
            print(f'倒計時{n - k}秒')
            time.sleep(1)  # 程序運行等待五秒你是豬

        # 復制圖片
        for path in filepath:
            try:
                im = Image.open(path)
                im.save('11.bmp')
                aString = windll.user32.LoadImageW(0, r"11.bmp", win32con.IMAGE_BITMAP, 0, 0, win32con.LR_LOADFROMFILE)
            except:
                continue

            if aString != 0:  ## 由于圖片編碼問題  圖片載入失敗的話  aString 就等于0
                win32clipboard.OpenClipboard()
                win32clipboard.EmptyClipboard()
                win32clipboard.SetClipboardData(win32con.CF_BITMAP, aString)
                win32clipboard.CloseClipboard()

                keyboard = key()  # 獲取鍵盤權限
                if i == 0:
                    i += 0
                pyautogui.hotkey('ctrl', 'v')
                keyboard.press(Key.enter)  # 回車鍵按下
                keyboard.release(Key.enter)  # 回車鍵松開
                time.sleep(time_interval)

if __name__ == '__main__':
    root = tk.Window()   # 建立一個根窗口
    root.title('爆炸信息') # 窗口名稱
    root.geometry('500x300') # 窗口大小  寬x高
    app = Send_information() # 實例化Send_information對象
    Explosion_window(root, app) # 實例化Explosion_window對象
    root.mainloop()

?這時你可能會問

誒,到了這的小伙伴可能會有些疑問:表情包怎么下載呀?一個個手動下載豈不是太麻煩了呀……
??別擔心,我怎么會讓你們動手呢,最多動動腦??

來來來!敲黑板了!??!現(xiàn)在布置一個作業(yè)!接下來我將放一個批量下載表情包的源碼,通過觀察源碼進行操作,實現(xiàn)圖片下載。

提醒!真相只有一個:只用改url ??

【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~,小玩意兒,python,django,開發(fā)語言

?? 批量獲取表情包

import requests
from lxml import etree
import os
import threading


def get_url(url, img_urls): #獲取圖片url
    res = requests.get(url, headers=headers)    # 發(fā)送請求
    html = etree.HTML(res.text)     # 將html元素轉換成html對象
    img_urls += html.xpath('//div[@class="thumbnail"]/a/img/@src')


def user_choose(): # 用戶選擇下載圖片的頁數(shù)
    img_urls = []  # 存放圖片url
    # 請輸入下載網(wǎng)址
    url = 'http://www.bbsnet.com/egao'
    # 用戶輸入頁數(shù)
    page = int(input('請輸入獲取的頁數(shù):'))
    for i in range(0, page):
        if page == 0:
            get_url(url, img_urls)
        elif page >= 1:
            link = url + f'/page/{i+1}'     # 拼接鏈接
            get_url(link, img_urls)   #調用獲取圖片url的函數(shù)
    return img_urls


def download_picture(img_url, i, j): # 下載圖片
    res = requests.get(img_url, headers)
    with open(f'./表情包/表情包-{i}.{j}', 'wb') as f:
        f.write(res.content)


if __name__ == '__main__':
    if not os.path.exists('./表情包'):
        os.makedirs('./表情包')

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
    }
    img_urls = user_choose()

    threads = []
    for i in range(len(img_urls)):
        t = threading.Thread(target=download_picture, args=(img_urls[i], i, img_urls[i][-3:]))
        threads.append(t)
    for t in threads:
        t.start()

??結束語

實話實說,寫這篇文章總共畫了我三個多小時??,一邊調試一邊寫,期間又刪刪改改一些內容,減少代碼量,將代碼邏輯變得更加嚴謹些,再加上之前寫代碼的時間,錄視頻,制作gif……,加起來應該有七八個小時吧,欸,千年老腰要塌了??(卑微求個三連??)

不管怎樣,總算是寫完了??
不知道小伙伴們是否喜歡這一片文章,如果喜歡,可以旋個三連 點贊?? 收藏?? 關注哦?? 您的支持,就是我更新的最大動力!感謝??

??提醒:爆炸信息窗口僅供娛樂,請勿騷擾他人,避免給他人造成生活上的不便~

peace~文章來源地址http://www.zghlxwxcb.cn/news/detail-720623.html

到了這里,關于【兄弟反目成仇系列】:我只是寫了一個爆炸信息窗口腳本,好兄弟追了我?guī)讞l街~的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Thinking -- CSS從根解決選擇前一個兄弟元素

    Thinking -- CSS從根解決選擇前一個兄弟元素

    Thinking系列,旨在利用10分鐘的時間傳達一種可落地的編程思想。 開發(fā)中遇到這樣一個訴求:特定class的元素單獨占一行,現(xiàn)需要針對其前一個兄弟元素增加相應標識,以使其占據(jù)所在行的剩余所有空間。 換句話:就是如何選中特定class的前一個兄弟元素。( 如何選中下面每個

    2024年02月04日
    瀏覽(14)
  • 我用爬蟲寫了一個小程序

    我用爬蟲寫了一個小程序

    一天我在微信小程序上面發(fā)現(xiàn)有很多表情包或者壁紙一類的小程序,我就在想我可不可以做一個類似的小程序呢? 想法 最開始的時候想法比較簡單,就是寫一個接口然后上傳表情包或者壁紙(到處是下載,哈哈哈)。 然后根據(jù)分類以及標題進行搜索已達到其效果;但是讓我沒

    2024年02月07日
    瀏覽(20)
  • vue+elementui寫了一個圖書管理系統(tǒng)

    vue+elementui寫了一個圖書管理系統(tǒng)

    用vue+elementui寫了一個圖書管理系統(tǒng) 轉載自公號:java大師 目前是指一個純前端的展示,后端還在開發(fā)中,前端接口是通過json-server模擬的 用到的技術棧 1、vue.js 2、elementui 3、json-server 4、axios 5、vue-router 動態(tài)路由 目錄結構 1、components文件夾是封裝的通用的Mytable和Myform及Nav等,

    2024年02月04日
    瀏覽(24)
  • 用JavaFX寫了一個簡易的管理系統(tǒng)

    用JavaFX寫了一個簡易的管理系統(tǒng)

    自學一下Java FX ,用Java代碼寫一個簡易的客戶端。 本文項目是Maven項目,使用了Java17,以及mysql。 代碼倉庫:https://gitee.com/fengsoshuai/java-fx-management-system-demo/tree/dev-with-db/ 代碼倉庫(前后端分離版本) : https://gitee.com/fengsoshuai/javafx-management-front-back-demo 建議代碼可以直接看前后

    2024年01月25日
    瀏覽(22)
  • 用Python寫了一個「擁抱梅西」的小游戲

    用Python寫了一個「擁抱梅西」的小游戲

    大家好,歡迎來到 Crossin的編程教室 !? 最近有個小伙兒因為在比賽中沖進場地擁抱梅西而出名了。? 這種行為當然不可取,他也為此付出了代價。但要說我沒有一丁點羨慕和佩服那是不可能的。 于是,我也尬蹭一下這個熱點,用Python寫了一個「擁抱梅西」的小游戲。 游戲

    2024年02月09日
    瀏覽(23)
  • 我寫了一個用來刷題的微信小程序

    我寫了一個用來刷題的微信小程序

    目錄 土著刷題是一個什么工具? 為什么要做土著刷題這樣一個產品? 當前版本的規(guī)劃 版本效果 土著刷題微信小程序,一款免費的刷題小程序,提供多種刷題模式,可以分享題庫給小伙伴一起刷,針對特定題庫的用戶群體。 對于為什么要開發(fā)這個刷題小程序,這可以說是一

    2024年02月10日
    瀏覽(22)
  • 手動自己寫了一個波場(Tron)本地網(wǎng)頁版錢包

    手動自己寫了一個波場(Tron)本地網(wǎng)頁版錢包

    最近由于項目需要,需要給每個用戶分配一個充幣地址,考慮到錢包安全性和方便管理,于是自己動手寫了一個本地網(wǎng)頁版的錢包,附上源代碼跟大家交流下。 Github 源碼地址 錢包和項目是分離的,項目通過鑒權訪問錢包的接口,主要實現(xiàn)了以下功能: 1、可以導入助記詞、

    2023年04月15日
    瀏覽(109)
  • 用auto.js寫了一個抖音點贊、關注的腳本

    最近一直在找工作,有天就遇到一個要求使用auto.js寫一些自動化控件的公司(我嚴重懷疑它其實就想白嫖。。。),于是就有了這個小demo... 因為沒用過抖音,也不懂auto.js,所以看了一些教學視頻,所以寫成這個樣子了。。。(有點爛,就單純記錄一下自己的學習過程,au

    2024年02月13日
    瀏覽(89)
  • 用Python寫了一個下載網(wǎng)站所有內容的軟件,可見即可下

    用Python寫了一個下載網(wǎng)站所有內容的軟件,可見即可下

    前言 嗨嘍~大家好呀,這里是魔王吶 ? ~! 今天我們分享一個用Python寫下載視頻+彈幕+評論的代碼。 順便把這些寫成GUI,把這些功能放到一起讓朋友用起來更方便~ 環(huán)境介紹: python 3.8 pycharm 2022專業(yè)版 免費使用教程文末名片獲取 python資料、源碼、教程福利皆: 點擊此處跳轉文末

    2024年02月09日
    瀏覽(20)
  • 最前端|注意看!我用代碼寫了一個會動的3D地球

    最前端|注意看!我用代碼寫了一個會動的3D地球

    目錄 一、文章背景 二、實現(xiàn)方式 (一)方案 (二)實現(xiàn)細則 三、總結 在我們負責的某個項目中有一個需求,其展館的可視化大屏首屏需要 3D 地球作為載體,來展示各國貿易額的信息,因此催生了 3D 地球的需求。需求的側重點更多在于美觀,動態(tài)方面,對于數(shù)據(jù)展示層面

    2024年02月09日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包