TransWikia.com

Соединить коды в PyQT5

Stack Overflow на русском Asked by INdigrID on November 26, 2020

Есть 2 кода, один мне дали, другой писал сам. Нужно их объединить. Надо, чтоб размеры и название окна, названия клавиш и тд были как в первом коде, а после нажатия на клавишу(это реализованно во втором коде) подключался второй код, и появлялась таблица из базы данных.
Вот первый код:

import sys
from PyQt5 import QtMultimedia, QtCore
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QWidget, QLabel, QPushButton, QLineEdit, QApplication, QMainWindow


class Guitar(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(250, 55, 1200, 800)
        self.setWindowTitle('Гитара')
    
        self.Accords_button = QPushButton('список аккордов', self)
        self.Accords_button.resize(200, 100)
        self.Accords_button.move(300, 500)

        self.Songs_button = QPushButton('список песен', self)
        self.Songs_button.resize(200, 100)
        self.Songs_button.move(300, 200)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Guitar()
    ex.show()
    sys.exit(app.exec_())

Вот второй код:

import sys

from PyQt5.QtWidgets import QWidget, QTableView, QDialog, QPushButton, QApplication, QVBoxLayout
from PyQt5.QtSql import QSqlDatabase, QSqlTableModel


class Films(QDialog):
    def __init__(self, parent):
        super().__init__(parent)
        
        self.setWindowTitle('Films')
        
        main_layout = QVBoxLayout()

        self.model = QSqlTableModel(self)
        self.model.setTable('films')

        self.view_films = QTableView()
        self.view_films.setModel(self.model)

        main_layout.addWidget(self.view_films)

        self.setLayout(main_layout)

    def refresh(self):
        self.model.select()


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()

        self.db = QSqlDatabase.addDatabase('QSQLITE')
        self.db.setDatabaseName('films_db.sqlite')
        self.db.open()

        self.initUI()

    def initUI(self):
        main_layout = QVBoxLayout()

        self.button_films = QPushButton('список фильмов')
        self.button_films.clicked.connect(self._show_films)

        self.button_serials = QPushButton('список сериалов')

        main_layout.addWidget(self.button_films)
        main_layout.addWidget(self.button_serials)

        self.setLayout(main_layout)

    def _show_films(self):
        films = Films(self)
        films.refresh()
        films.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MainWindow()
    ex.show()
    sys.exit(app.exec_())

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP