博主信息
博文 110
粉丝 0
评论 0
访问量 228969
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
轻轻松松看电影,这几行python代码帮你搞定
Coco
原创
99884人浏览过

  # -*- encoding:utf-8 -*-

  import sys

  from PyQt5.QtWidgets import QDialog, QLabel, QPushButton, QLineEdit, QListWidget, QGridLayout, QComboBox, QMessageBox, QApplication, QMenuBar, QAction, QMainWindow, QWidget, QVBoxLayout

  from PyQt5.QtCore import pyqtSlot, QThread, QObject

  from PyQt5.QtGui import QIcon, QPixmap, QImage

  from movieSource.MovieHeaven import MovieHeaven

  class ImageWindow(QMainWindow):

  def __init__(self, resources, title):

  super(ImageWindow, self).__init__()

  self.setWindowTitle(title)

  self.central_widget=QWidget()

  self.setCentralWidget(self.central_widget)

  layout=QVBoxLayout(self.central_widget)

  image=QImage(resources)

  pixmap=QPixmap(resources)

  image_label=QLabel(self)

  image_label.setPixmap(pixmap)

  image_label.resize(pixmap.width(), pixmap.height())

  layout.addWidget(image_label)

  class LayoutDialog(QMainWindow):

  __slots__=['word', 'movie_name_label', 'movie_name_line_edit', 'movie_source_label', 'movie_source_combobox',

  'search_push_button', 'tip_label', 'search_content_label', 'search_content_text_list']

  def __init__(self):

  super().__init__()

  self.left=300

  self.top=300

  self.width=400

  self.height=450

  self=WorkThread()

  self.init_widgets().init_layout().init_event()

  def init_widgets(self):

  self.setWindowTitle(self.tr("Search Movies"))

  self.setGeometry(self.left, self.top, self.width, self.height)

  self.movie_name_label=QLabel(self.tr("电影名称:"))

  self.movie_name_line_edit=QLineEdit()

  self.movie_source_label=QLabel(self.tr("选择片源:"))

  self.movie_source_combobox=QComboBox()

  self.movie_source_combobox.addItem(self.tr('电影天堂'))

  self.search_push_button=QPushButton(self.tr("查询"))

  self.tip_label=QLabel(self.tr("未开始查询..."))

  self.search_content_label=QLabel(self.tr("查询内容:"))

  self.search_content_text_list=QListWidget()

  self.menu_bar=self.menuBar()

  return self

  def init_layout(self):

  top_layout=QGridLayout()

  top_layout.addWidget(self.movie_name_label, 0, 0)

  top_layout.addWidget(self.movie_name_line_edit, 0, 1)

  top_layout.addWidget(self.movie_source_label, 0, 2)

  top_layout.addWidget(self.movie_source_combobox, 0, 3)

  top_layout.addWidget(self.search_push_button, 0, 4)

  top_layout.addWidget(self.tip_label, 3, 1)

  top_layout.addWidget(self.search_content_label, 3, 0)

  top_layout.addWidget(self.search_content_text_list, 4, 0, 2, 5)

  main_frame=QWidget()

  self.setCentralWidget(main_frame)

  main_frame.setLayout(top_layout)

  self.reward_window=ImageWindow('

  resources/wechat_reward.jpg', '赞赏')

  self.watch_window=ImageWindow('

  resources/watch_wechat.jpg', '关注')

  return self

  def init_event(self):

  self.search_push_button.clicked.connect(self.search)

  self.search_content_text_list.itemClicked.connect(self.copy_text)

  reward_action=QAction('赞赏', self)

  reward_action.setIcon(QIcon('resources/reward.png'),)

  reward_action.triggered.connect(self.reward)

  watch_action=QAction('关注', self)

  watch_action.setIcon(QIcon('resources/watch.png'),)

  watch_action.triggered.connect(self.watch_wechat)

  reward_menu=self.menu_bar.addMenu('支持作者')

  reward_menu.addAction(reward_action)

  reward_menu.addAction(watch_action)

  def reward(self):

  self.reward_window()

  def watch_wechat(self):

  self.watch_window()

  def search(self):

  self.tip_label.setText(self.tr("正在查询请稍后..."))

  movie_name=self.movie_name_line_edit.text()

  if movie_name:

  selfder(movie_name, self.movie_source_combobox,

  self.tip_label, self.search_content_text_list)

  else:

  self.critical("请输入电影名称!")

  def critical(self, message):

  """

  when the movieName is None,

  remind users

  """

  QMessageBox.critical(self, self.tr("致命错误"),

  self.tr(message))

  def copy_text(self):

  copied_text=self.search_content_text_list.currentItem().text()

  QApplication.clipboard().clear()

  QApplication.clipboard().setText(copied_text)

  self.slot_information()

  def slot_information(self):

  QMessageBoxrmation(self, "Success!", self.tr("成功将游戏账号拍卖平台内容复制到剪贴板上!"))

  class WorkThread(QThread):

  def __init__(self):

  QThread.__init__(self)

  def render(self, movie_name, movie_source_combobox, tip_label, search_content_text_list):

  self.movies_list=[]

  self.movie_source_combobox=movie_source_combobox

  self.movie_name=movie_name

  self.tip_label=tip_label

  self.search_content_text_list=search_content_text_list

  self.start()

  def get_select_movie_source(self, movie_name):

  """

  according to the value of the QComboBox,

  generate the right class of movie search

  """

  movies, url, params=None, None, {

  "kwtype": "0", "searchtype": "title"}

  select_source=self.movie_source_combobox.currentText()

  if select_source==self.tr('电影天堂'):

  movies=MovieHeaven()

  url="s.dydytt/plus/search.php"

  params["keyword"]=movie_name.encode('gb2312')

  return movies, url, params

  def run(self):

  search_movies, url, params=self.get_select_movie_source(

  self.movie_name)

  try:

  self.movies_list=search_movies.get_display_content(url, params)

  except Exception as e:

  self.movies_list.append(self.tr("过于频繁的访问"))

  finally:

  self.search_content_text_list.clear()

  self.search_content_text_list.addItems(self.movies_list)

  self.tip_label.setText(self.tr("查询结束"))

  app=QApplication(sys.argv)

  dialog=LayoutDialog()

  dialog()

  app.exec_()

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学