亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python tkinter做UI界面

系統(tǒng) 1782 0

使用Python內(nèi)置的tkinter寫界面

里面的爬蟲代碼是爬取網(wǎng)易云音樂的電臺專欄,代碼講解鏈接在我上一篇博客:https://blog.csdn.net/congcong7267/article/details/95625653

代碼

            
              # -*- coding: utf-8 -*-
import tkinter.messagebox
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk
import random
from selenium.webdriver.chrome.options import Options
from selenium import webdriver

def get_result1(): #電臺專欄里的推薦節(jié)目
    # 實例化一個啟動參數(shù)對象
    chrome_options = Options()
    # 設(shè)置瀏覽器以無界面方式運行
    # chrome_options.add_argument('--headless')
    # browser = webdriver.Chrome(chrome_options=chrome_options)
    browser = webdriver.Chrome()
    browser.maximize_window()  # 窗口最大化
    browser.get('https://music.163.com/#/discover/djradio')  # URL
    browser.implicitly_wait(30)  # 隱示等待,為了等待充分加載好網(wǎng)址
    # browser.switch_to.frame("app_canvas_frame")   #轉(zhuǎn)換到我們需要的數(shù)據(jù)的frame,一定不要忘記
    browser.switch_to.frame("contentFrame")
    result_list = browser.find_element_by_class_name("f-fl").find_elements_by_class_name("itm")
    return result_list

def get_result2(): #電臺專欄里的節(jié)目排行榜
    # 實例化一個啟動參數(shù)對象
    chrome_options = Options()
    # 設(shè)置瀏覽器以無界面方式運行
    #chrome_options.add_argument('--headless')
    #browser = webdriver.Chrome(chrome_options=chrome_options)
    browser = webdriver.Chrome()
    browser.maximize_window()  # 窗口最大化
    browser.get('https://music.163.com/#/discover/djradio')  # URL
    browser.implicitly_wait(30)  # 隱示等待,為了等待充分加載好網(wǎng)址
    # browser.switch_to.frame("app_canvas_frame")   #轉(zhuǎn)換到我們需要的數(shù)據(jù)的frame,一定不要忘記
    browser.switch_to.frame("contentFrame")
    result_list = browser.find_element_by_class_name("f-fr").find_elements_by_class_name("itm")
    return result_list


def click(): #btn1點擊事件
    x = tree.get_children()
    for item in x:
        tree.delete(item)
?   #刪除原來tree里面的內(nèi)容
    # 表格的標題
    size = int((max_w - 60) / 4)
    tree.column("a", width=size, anchor="center")
    tree.column("b", width=size, anchor="center")
    tree.column("c", width=size, anchor="center")
    tree.column("d", width=size, anchor="center")
    #tree.column("e", width=size, anchor="center")
    tree.heading("a", text="電臺名")
    tree.heading("b", text="簡介")
    tree.heading("c", text="類型")
    tree.heading("d", text="鏈接")
    #tree.heading("e", text="其它")
    vbar.pack(side=tkinter.RIGHT, fill=tkinter.Y)
    tree.pack()
    # 插入數(shù)據(jù)
    result_list = get_result1()
    for result in result_list:
        name = result.find_element_by_class_name("s-fc4").text  # 電臺名
        subscribe = result.find_element_by_class_name("s-fc1").text  # 簡介
        type = result.find_element_by_class_name("u-type").text  # 類型
        url = result.find_element_by_class_name("s-fc1").get_attribute("href")  # 鏈接
        #print("電臺名:{},簡介:{},類型:{},url:{}".format(name, subscribe, type, url))
        tree.insert('', 'end', values=[name, subscribe, type, url])



def click2(): #btn2點擊事件
    x = tree.get_children()
    for item in x:
        tree.delete(item)
    #刪除原來tree里面的內(nèi)容
    # 表格的標題
    size = int((max_w - 60) / 4)
    tree.column("a", width=size, anchor="center")
    tree.column("b", width=size, anchor="center")
    tree.column("c", width=size, anchor="center")
    tree.column("d", width=size, anchor="center")
    tree.heading("a", text="排名")
    tree.heading("b", text="節(jié)目名")
    tree.heading("c", text="URL")
    tree.heading("d", text="")
    vbar.pack(side=tkinter.RIGHT, fill=tkinter.Y)
    tree.pack()
    # 插入數(shù)據(jù)
    result_list = get_result2()
    for result in result_list:
        rank = result.find_element_by_class_name("f-fs1").text  # 排名
        name = result.find_element_by_class_name("s-fc1").text  # 節(jié)目名
        url = result.find_element_by_class_name("f-fw0").get_attribute("href")  # 鏈接
        tree.insert('', 'end', values=[rank, name, url,""])


root = tkinter.Tk()
root.title("數(shù)據(jù)查詢窗口")
# 設(shè)置窗口居中
# max_w:屏幕最大寬度,max_h:屏幕最大高度
max_w, max_h = root.maxsize()
# 窗口的寬度和高度
root_w = max_w
root_h = max_h
# 計算中心坐標
cen_x = (max_w - root_w) / 2
cen_y = (max_h - root_h) / 2
# 設(shè)置窗口大小和位置
root.geometry('%dx%d+%d+%d' % (root_w, root_h, cen_x, cen_y))
frame_tools = Frame(width=max_w, height=150, bg='#dddddd')
frame_list = Frame(width=max_w, height=max_h-150, bg='#FFFFFF')
tree = ttk.Treeview(frame_list, show="headings", height=100, columns=("a", "b", "c", "d"))
vbar = ttk.Scrollbar(frame_list, orient=VERTICAL, command=tree.yview)
tree.configure(yscrollcommand=vbar.set)
btn1 = tkinter.Button(frame_tools, text='推薦 電臺', font=("微軟雅黑", 9),command = click).place(x=max_w/2-150,y=75)
btn2 = tkinter.Button(frame_tools, text='節(jié)目排行榜', font=("微軟雅黑", 9),command = click2).place(x=max_w/2+150,y=75)

frame_tools.pack()
frame_list.pack()
for i in range(100):
    tree.insert('', 'end', values=[i + 1, "", random.randint(1, 10), "".format(i + 1)])

tkinter.mainloop()

            
          

運行截圖:

?

python tkinter做UI界面_第1張圖片

python tkinter做UI界面_第2張圖片

?

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎永久免费地ww4hu57 | 奇米中文字幕 | 中国性猛交xxxx乱大交 | 涩涩色中文综合亚洲 | 久久国产精品广西柳州门 | 欧美亚洲一区二区三区在线 | 一区二区三区亚洲视频 | 视频一区日韩 | 福利免费观看 | 99热久久这里只有精品7 | 天天干狠狠操 | 国产成人亚洲综合a∨婷婷 国产成人亚洲综合欧美一部 | 日本中文一二区有码在线观看 | 国产大片中文字幕在线观看 | 四虎a级欧美在线观看 | 国产精品视频免费 | 97在线观看免费观看高清 | 99热久久精品最新 | 番茄视频在线观看黄版本免费 | 亚洲欧美中文字幕专区 | 免费人成激情视频在线看 | 亚洲中字在线 | 99热这里只有精品9 99热这里只有精品99 | 国产欧美中文字幕 | 国产精品视频久久 | 特级理论片 | 91精品日韩| 九九九精品午夜在线观看 | 日日夜夜天天干 | 久久亚洲国产的中文 | 全免费午夜一级毛片真人 | 青青久久精品 | 久久成人国产 | 日本中文一二区有码在线观看 | 九九影院理论片 | 人人爽天天爽夜夜爽qc | 色中色综合 | 在线日本韩国 | 日本精品夜色视频一区二区 | 综合色吧| 狠狠色噜噜狠狠狠狠五月婷 |