29 / 29 / 0
Регистрация: 31.01.2020
Сообщений: 181

Поиск по фильмам

23.10.2020, 17:19. Показов 12838. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу с графическим пользовательским интерфейсом на PyQT, которая позволяет получать информацию о фильме из базы данных films_db.sqlite.

Пользователь должен иметь возможность ввести с использованием виджетов PyQT один из следующих параметров: название, год выпуска или продолжительность фильма. После ввода параметра и нажатия на кнопку отобразите в табличном виде всю информацию, хранящуюся в базе данных, для фильма, соответствующего выбранному параметру.

Используйте для этого соответствующий виджет PyQT. Если под введенный параметр подходит несколько записей, необходимо отобразить запись с наименьшим значением поля ID.

Предусмотрите реакцию приложения на неправильный ввод и отсутствие записей, подходящих под запрос.
Миниатюры
Поиск по фильмам  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.10.2020, 17:19
Ответы с готовыми решениями:

Поиск по фильмам 2
Модифицируйте программу «Поиск по фильмам» классной работы. Выводите все результаты поиска в таблицу (а не только первый найденный) ...

Структуры.(Информация по фильмам)
Ввести информацию по N фильмам (название, режиссер, год выпуска) и записать ее в текстовый файл. Вывести сведения обо всех фильмах...

Вывод сведений по фильмам
Такая проблема: написал программу, которая должна принимать на себя массив структур по фильмам (Название, режиссёр, страна, жанр, год), и...

2
0 / 0 / 0
Регистрация: 01.05.2021
Сообщений: 1
01.05.2021, 14:03
playandwork, ты сделал это задание? если да, скинь пожалуйста, буду очень благодарен
0
15 / 14 / 1
Регистрация: 16.11.2019
Сообщений: 33
30.10.2022, 07:22
Код приложения:
Python
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
import sqlite3
import sys
 
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QMainWindow, QTableWidgetItem
 
 
class DBSample(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi('untitled.ui', self)
        self.con = sqlite3.connect("films_db.sqlite")
        self.comboBox.addItems(['Год выпуска', 'Название', 'Продолжительность'])
        self.comboBox.activated[str].connect(self.onActivated)
        self.button.clicked.connect(self.search)
        self.searching = 'year'
 
 
    def search(self):
        try:
            text = self.lineEdit.text()
            if text == '':
                raise ValueError
            cur = self.con.cursor()
            queue = 'SELECT * FROM Films WHERE ' + self.searching + ' = ?'
            res = cur.execute(queue, (text,)).fetchall()
            for elem in res:
                self.line_id.setText(str(elem[0]))
                self.name_line.setText(str(elem[1]))
                self.year_line.setText(str(elem[2]))
                self.genre_line.setText(str(elem[3]))
                self.duration_line.setText(str(elem[4]))
                break
        except ValueError:
            self.error.setText('Неправильный ввод')
        except Exception as e:
            print(e)
            self.error.setText('Ничего не найдено')
 
 
    def onActivated(self, text):
        if text == 'Год выпуска':
            self.searching = 'year'
        elif text == 'Название':
            self.searching = 'title'
        elif text == 'Продолжительность':
            self.searching = 'duration'
 
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = DBSample()
    ex.show()
    sys.exit(app.exec())
Код дизайна:
Python
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
from PyQt5 import QtCore, QtGui, QtWidgets
 
 
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(554, 337)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.comboBox = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox.setEnabled(True)
        self.comboBox.setGeometry(QtCore.QRect(10, 10, 221, 22))
        self.comboBox.setObjectName("comboBox")
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setGeometry(QtCore.QRect(240, 10, 211, 20))
        self.lineEdit.setObjectName("lineEdit")
        self.button = QtWidgets.QPushButton(self.centralwidget)
        self.button.setGeometry(QtCore.QRect(460, 10, 75, 23))
        self.button.setObjectName("button")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(10, 60, 51, 16))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(10, 100, 101, 16))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(10, 140, 121, 16))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_3.setFont(font)
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(10, 180, 61, 16))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_4.setFont(font)
        self.label_4.setObjectName("label_4")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(10, 220, 191, 16))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_5.setFont(font)
        self.label_5.setObjectName("label_5")
        self.error = QtWidgets.QLabel(self.centralwidget)
        self.error.setGeometry(QtCore.QRect(10, 270, 341, 16))
        self.error.setText("")
        self.error.setObjectName("error")
        self.line_id = QtWidgets.QLineEdit(self.centralwidget)
        self.line_id.setGeometry(QtCore.QRect(220, 60, 321, 20))
        self.line_id.setReadOnly(True)
        self.line_id.setObjectName("line_id")
        self.name_line = QtWidgets.QLineEdit(self.centralwidget)
        self.name_line.setGeometry(QtCore.QRect(220, 100, 321, 20))
        self.name_line.setReadOnly(True)
        self.name_line.setObjectName("name_line")
        self.year_line = QtWidgets.QLineEdit(self.centralwidget)
        self.year_line.setGeometry(QtCore.QRect(220, 140, 321, 20))
        self.year_line.setReadOnly(True)
        self.year_line.setObjectName("year_line")
        self.genre_line = QtWidgets.QLineEdit(self.centralwidget)
        self.genre_line.setGeometry(QtCore.QRect(220, 180, 321, 20))
        self.genre_line.setReadOnly(True)
        self.genre_line.setObjectName("genre_line")
        self.duration_line = QtWidgets.QLineEdit(self.centralwidget)
        self.duration_line.setGeometry(QtCore.QRect(220, 220, 321, 20))
        self.duration_line.setReadOnly(True)
        self.duration_line.setObjectName("duration_line")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 554, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
 
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
 
    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.button.setText(_translate("MainWindow", "Поиск"))
        self.label.setText(_translate("MainWindow", "ID:"))
        self.label_2.setText(_translate("MainWindow", "НАЗВАНИЕ:"))
        self.label_3.setText(_translate("MainWindow", "ГОД ВЫПУСКА:"))
        self.label_4.setText(_translate("MainWindow", "ЖАНР:"))
        self.label_5.setText(_translate("MainWindow", "ПРОДОЛЖИТЕЛЬНОСТЬ:"))
 
 
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.10.2022, 07:22
Помогаю со студенческими работами здесь

База данных по фильмам
Привет всем) помогите пожалуста) Не знаю как в базе данных по фильмам оформить простановку жанров...пока только есть идея сделать это...

Создать массив структур по фильмам
В общем, нужно создать массив структур по фильмам. Каждая структура состоит из: режиссер, название, страна, жанр, год. Вывести на экран...

Как раскрутить сайт по фильмам
Каким образом новые сайты по фильмам выходят в том рейтинга? не видел чтобы они постили свои ссылки на схожих форумах и блогах, также не...

Стикер к фильмам в joomla. с пхп иф
Привет. Не поможете мне с одной маленькой проблемой. Режил я добавить стикер к фильмам относящимся к категории "2015". Каждый раз...

Блок с постерами к фильмам - не вставляется изображение в список
Ребята такая фигня: Как видите изображение в списке не вставляется, хотя путь к файлам прописал правильно (проверял) Первый постер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru