Ai
1 Star 0 Fork 0

Python程序设计/20192426-chw

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Experiment4.py 7.83 KB
一键复制 编辑 原始数据 按行查看 历史
陈瀚文 提交于 2020-06-28 12:54 +08:00 . Code for experiment 4
# -*- encoding: utf-8 -*-
'''
文件: Experiment4.py
时间: 2020/06/12 18:54:45
作者: 20192426 陈瀚文
'''
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'Experiment4.ui'
#
# Created by: PyQt5 UI code generator 5.15.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from Ex4_func import * # 导入爬虫函数
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(960, 900)
MainWindow.setMinimumSize(QtCore.QSize(960, 900))
MainWindow.setMaximumSize(QtCore.QSize(960, 900))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.widget_query = QtWidgets.QWidget(self.centralwidget)
self.widget_query.setGeometry(QtCore.QRect(0, 0, 960, 80))
self.widget_query.setObjectName("widget_query")
self.pushButton_hot = QtWidgets.QPushButton(self.widget_query)
self.pushButton_hot.setGeometry(QtCore.QRect(280, 26, 200, 28))
self.pushButton_hot.setObjectName("pushButton_hot")
self.label_img = QtWidgets.QLabel(self.widget_query)
self.label_img.setGeometry(QtCore.QRect(100, 26, 80, 27))
self.label_img.setStyleSheet("")
self.label_img.setText("")
self.label_img.setPixmap(QtGui.QPixmap("D:\\网空专业\\大一下\\Python程序设计\\Learnpython\\Experiment\\Experiment4\\WB_logo.png")) # 设置微博logo
self.label_img.setObjectName("label_img")
self.pushButton_news = QtWidgets.QPushButton(self.widget_query)
self.pushButton_news.setGeometry(QtCore.QRect(600, 26, 200, 28))
self.pushButton_news.setObjectName("pushButton_news")
self.label_time = QtWidgets.QLabel(self.centralwidget)
self.label_time.setGeometry(QtCore.QRect(50, 84, 900, 20))
font = QtGui.QFont() # 设置字体
font.setFamily("微软雅黑 Light")
self.label_time.setFont(font)
# self.label_time.setText("{}".format(UpdateTime()))
self.label_time.setObjectName("label_time")
self.label_time.setStyleSheet("color:#999") # 设置字体颜色
self.label_note = QtWidgets.QLabel(self.centralwidget)
self.label_note.setGeometry(QtCore.QRect(660, 84, 260, 20))
self.label_note.setFont(font)
self.label_note.setObjectName("label_note")
self.label_note.setStyleSheet("color:#999") # 设置字体颜色
self.tableView_result = QtWidgets.QTableView(self.centralwidget)
self.tableView_result.setGeometry(QtCore.QRect(30, 110, 900, 750))
self.tableView_result.setMinimumSize(QtCore.QSize(900, 750))
self.tableView_result.setMaximumSize(QtCore.QSize(900, 750))
self.tableView_result.setObjectName("tableView")
self.model = QStandardItemModel()
# 纵向表头不可见
self.tableView_result.verticalHeader().setVisible(False)
# 设置表格内容文字大小
font = QtGui.QFont()
font.setPointSize(10)
self.tableView_result.setFont(font)
# 设置表格内容不可编辑
self.tableView_result.setEditTriggers(QAbstractItemView.NoEditTriggers)
# 垂直滚动条始终开启
self.tableView_result.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
self.pushButton_hot.clicked.connect(lambda: self.PushHot()) # 绑定pushButton_hot按钮的单机事件
self.pushButton_news.clicked.connect(lambda: self.PushNews()) # 绑定pushButton_news按钮的单机事件
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "微博热搜"))
self.pushButton_hot.setText(_translate("MainWindow", "热搜榜"))
self.pushButton_news.setText(_translate("MainWindow", "要闻榜"))
self.label_note.setText(_translate("MainWindow", "提示:双击具体标题可跳转至浏览器"))
def DisplayTable1(self, row, column, data):
# 功能:让tableView_result控件展示爬取的热搜
self.model.clear()
for a in range(row):
for b in range(column):
# 添加表格内容
item = QStandardItem(data[a][b])
item.setTextAlignment(Qt.AlignCenter)
# 向表格存储模式中添加表格具体信息
self.model.setItem(a, b, item)
# 设置表格存储数据的模式
self.tableView_result.setModel(self.model)
def DisplayTable2(self, row, data):
# 功能:让tableView_result控件展示爬取的要闻
self.model.clear()
for a in range(row):
# 添加表格内容
item = QStandardItem(data[a])
item.setTextAlignment(Qt.AlignCenter)
id = QStandardItem("{}".format(a + 1))
id.setTextAlignment(Qt.AlignCenter)
# 向表格存储模式中添加表格具体信息
self.model.setItem(a, 0, id)
self.model.setItem(a, 1, item)
# 设置表格存储数据的模式
self.tableView_result.setModel(self.model)
def PushHot(self):
result_h = search_hot()
self.DisplayTable1(len(result_h), len(result_h[0]), result_h)
self.model.setHorizontalHeaderLabels(['序号', '内容', '标签', '热度'])
self.tableView_result.setColumnWidth(0, 50)
self.tableView_result.setColumnWidth(1, 670)
self.tableView_result.setColumnWidth(2, 50)
self.tableView_result.setColumnWidth(3, 100)
try:
self.tableView_result.doubleClicked.disconnect() # 防止将self.table_openhotlink()绑定多次
except:
pass
self.tableView_result.doubleClicked.connect(lambda: self.table_openhotlink()) # 绑定tableView_result的双击事件
def PushNews(self):
result_n = search_news()
self.DisplayTable2(len(result_n), result_n)
self.model.setHorizontalHeaderLabels(['序号', '内容'])
self.tableView_result.setColumnWidth(0, 50)
self.tableView_result.setColumnWidth(1, 820)
try:
self.tableView_result.doubleClicked.disconnect() # 防止将self.table_opennewslink()绑定多次
except:
pass
self.tableView_result.doubleClicked.connect(lambda: self.table_opennewslink()) # 绑定tableView_result的双击事件
def table_openhotlink(self):
# 功能:根据tableView_result中双击的位置打开对应的热搜链接
row = self.tableView_result.currentIndex().row()
link = search_hot_link(row)
openbrowser(link)
def table_opennewslink(self):
# 功能:根据tableView_result中双击的位置打开对应的要闻链接
row = self.tableView_result.currentIndex().row()
link = search_news_link(row)
openbrowser(link)
def show_MainWindow():
"""
功能:显示主窗体
"""
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.setWindowIcon(QIcon("D:\\网空专业\\大一下\\Python程序设计\\Learnpython\\Experiment\\Experiment4\\icon_wb.ico")) # 设置程序图标
MainWindow.show()
sys.exit(app.exec_())
if __name__ == "__main__":
# 程序入口
show_MainWindow()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/python_programming/chw20192426.git
git@gitee.com:python_programming/chw20192426.git
python_programming
chw20192426
20192426-chw
master

搜索帮助