-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTVDataWindow.py
120 lines (98 loc) · 4.38 KB
/
TVDataWindow.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
from PyQt5.QtWidgets import QMainWindow, QPushButton, QListWidget, QLabel, QVBoxLayout
import main
class imdbGUITVWindow(QMainWindow):
def __init__(self):
super().__init__()
self.label1 = None
self.label2 = None
self.poptv_list = None
self.setup_window()
def setup_window(self):
self.setWindowTitle("TV Data Window")
self.setGeometry(0, 0, 800, 800)
self.layout = QVBoxLayout()
self.label1 = QLabel("Popular TV")
self.label1.move(100, 10)
self.layout.addWidget(self.label1)
poptv_list = QListWidget(self)
poptv_list.move(50, 20)
poptv_list.resize(300, 500)
self.layout.addWidget(poptv_list)
self.label2 = QLabel("Top 250 TV")
self.label2.move(500, 100)
self.layout.addWidget(self.label2)
top250tv_list = QListWidget(self)
top250tv_list.move(450, 20)
top250tv_list.resize(300, 500)
self.layout.addWidget(top250tv_list)
crossover_list = QListWidget(self)
crossover_list.move(250, 600)
crossover_list.resize(300, 150)
self.layout.addWidget(crossover_list)
name = 'show_data.db'
connection, cursor = main.db_open(name)
# sorting buttons
rank_button = QPushButton("Rank", self)
rank_button.clicked.connect(lambda: self.addlistdata_rank(poptv_list, cursor))
rank_button.move(50, 550)
self.layout.addWidget(rank_button)
rankupdown_button = QPushButton("UpDown", self)
rankupdown_button.clicked.connect(lambda: self.addlistdata_rankupdown(poptv_list, cursor))
rankupdown_button.move(150, 550)
clear_button = QPushButton("Clear", self)
clear_button.clicked.connect(lambda: self.clear_list(poptv_list))
clear_button.move(250, 550)
self.layout.addWidget(rankupdown_button)
self.setLayout(self.layout)
self.addlistdata_top250(top250tv_list, cursor)
self.addlistdata_crossover(crossover_list, cursor)
# populates poptv_list ordered by ranking
def addlistdata_rank(self, poptv_list, cursor):
cursor.execute('SELECT title FROM popular_tv_data ORDER BY rank ASC ')
result1 = cursor.fetchall()
cursor.execute('SELECT rank FROM popular_tv_data ORDER BY rank ASC ')
result2 = cursor.fetchall()
cursor.execute('SELECT rankUpDown FROM popular_tv_data ORDER BY rank ASC')
result3 = cursor.fetchall()
result = []
for count in range(0, len(result1)):
result.append("Title: " + str(result1[count]) +
" Rank: " + str(result2[count]) + " RankUpDown " + str(result3[count]))
poptv_list.addItems(result)
return
# populates poptv_list ordered by rankUpDown
def addlistdata_rankupdown(self, poptv_list, cursor):
cursor.execute('SELECT title FROM popular_tv_data ORDER BY rankUpDown DESC ')
result1 = cursor.fetchall()
cursor.execute('SELECT rank FROM popular_tv_data ORDER BY rankUpDown DESC ')
result2 = cursor.fetchall()
cursor.execute('SELECT rankUpDown FROM popular_tv_data ORDER BY rankUpDown DESC ')
result3 = cursor.fetchall()
result = []
for count in range(0, len(result1)):
result.append("Title: " + str(result1[count]) +
" Rank: " + str(result2[count]) + " RankUpDown " + str(result3[count]))
poptv_list.addItems(result)
return
# populates top250tv_list
def addlistdata_top250(self, top250tv_list, cursor):
cursor.execute('SELECT title FROM main.show_data ')
result1 = cursor.fetchall()
result = []
for count in range(0, len(result1)):
result.append("Title: " + str(result1[count]))
top250tv_list.addItems(result)
return
# populates list of shows that appear in both lists
def addlistdata_crossover(self, crossover_list, cursor):
cursor.execute('SELECT main.show_data.title FROM main.show_data '
'INNER JOIN main.popular_tv_data ON show_data.id = popular_tv_data.id')
title_list = cursor.fetchall()
result = []
for count in range(0, len(title_list)):
result.append("Title: " + str(title_list[count]))
crossover_list.addItems(result)
return
def clear_list(self, poptv_list):
poptv_list.clear()
return