Example #1
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1056, 666)
        MainWindow.setMinimumSize(QtCore.QSize(1056, 666))
        MainWindow.setBaseSize(QtCore.QSize(1056, 666))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(232, 236, 240))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(232, 236, 240))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(232, 236, 240))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(232, 236, 240))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
        MainWindow.setPalette(palette)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        # self.context_view = QtWidgets.QTableView(self.centralwidget)
        self.context_view = TableView(self.centralwidget)
        self.context_view.setGeometry(QtCore.QRect(0, 69, 300, 541))
        self.context_view.setMinimumSize(QtCore.QSize(300, 50))
        self.context_view.setBaseSize(QtCore.QSize(300, 500))
        self.context_view.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.context_view.setFrameShadow(QtWidgets.QFrame.Raised)
        self.context_view.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.context_view.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
        self.context_view.setShowGrid(False)
        self.context_view.setObjectName("context_view")
        self.context_view.horizontalHeader().setCascadingSectionResizes(True)
        self.context_view.horizontalHeader().setDefaultSectionSize(220)
        self.context_view.horizontalHeader().setHighlightSections(False)
        self.context_view.horizontalHeader().setMinimumSectionSize(60)
        self.context_view.horizontalHeader().setStretchLastSection(True)
        self.context_view.verticalHeader().setVisible(False)
        # self.message_view = QtWidgets.QTableView(self.centralwidget)
        self.message_view = TableView(self.centralwidget)
        self.message_view.setGeometry(QtCore.QRect(350, 70, 300, 531))
        self.message_view.setMinimumSize(QtCore.QSize(250, 50))
        self.message_view.setBaseSize(QtCore.QSize(300, 500))
        self.message_view.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.message_view.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.message_view.setFrameShadow(QtWidgets.QFrame.Raised)
        self.message_view.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
        self.message_view.setObjectName("message_view")
        self.message_view.horizontalHeader().setDefaultSectionSize(301)
        self.message_view.horizontalHeader().setHighlightSections(False)
        self.message_view.horizontalHeader().setStretchLastSection(True)
        self.message_view.verticalHeader().setVisible(False)
        self.btLoad = QtWidgets.QPushButton(self.centralwidget)
        self.btLoad.setGeometry(QtCore.QRect(800, 20, 93, 28))
        self.btLoad.setObjectName("btLoad")
        self.source_editBox = QtWidgets.QGroupBox(self.centralwidget)
        self.source_editBox.setGeometry(QtCore.QRect(700, 60, 351, 161))
        self.source_editBox.setObjectName("source_editBox")
        self.sourceText = QtWidgets.QTextEdit(self.source_editBox)
        self.sourceText.setGeometry(QtCore.QRect(10, 20, 301, 87))
        self.sourceText.setObjectName("sourceText")
        self.btChange_source = QtWidgets.QPushButton(self.source_editBox)
        self.btChange_source.setGeometry(QtCore.QRect(250, 120, 93, 28))
        self.btChange_source.setObjectName("btChange_source")
        self.line = QtWidgets.QFrame(self.centralwidget)
        self.line.setGeometry(QtCore.QRect(682, 60, 21, 541))
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setFrameShape(QtWidgets.QFrame.VLine)
        self.line.setObjectName("line")
        self.ru_transBox = QtWidgets.QGroupBox(self.centralwidget)
        self.ru_transBox.setGeometry(QtCore.QRect(700, 250, 351, 161))
        self.ru_transBox.setFlat(False)
        self.ru_transBox.setObjectName("ru_transBox")
        self.ru_transText = QtWidgets.QTextEdit(self.ru_transBox)
        self.ru_transText.setGeometry(QtCore.QRect(10, 20, 301, 91))
        self.ru_transText.setObjectName("ru_transText")
        self.btChange_rus = QtWidgets.QPushButton(self.ru_transBox)
        self.btChange_rus.setGeometry(QtCore.QRect(250, 120, 93, 28))
        self.btChange_rus.setObjectName("btChange_rus")
        self.en_transBox = QtWidgets.QGroupBox(self.centralwidget)
        self.en_transBox.setGeometry(QtCore.QRect(699, 430, 351, 161))
        self.en_transBox.setObjectName("en_transBox")
        self.en_transText = QtWidgets.QTextEdit(self.en_transBox)
        self.en_transText.setGeometry(QtCore.QRect(10, 20, 301, 91))
        self.en_transText.setObjectName("en_transText")
        self.btChange_eng = QtWidgets.QPushButton(self.en_transBox)
        self.btChange_eng.setGeometry(QtCore.QRect(250, 120, 93, 28))
        self.btChange_eng.setObjectName("btChange_eng")
        self.line_2 = QtWidgets.QFrame(self.centralwidget)
        self.line_2.setGeometry(QtCore.QRect(-10, 50, 701, 20))
        self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        self.btSave = QtWidgets.QPushButton(self.centralwidget)
        self.btSave.setGeometry(QtCore.QRect(920, 20, 93, 28))
        self.btSave.setObjectName("btSave")
        self.context_viewTools = QtWidgets.QFrame(self.centralwidget)
        self.context_viewTools.setGeometry(QtCore.QRect(300, 70, 40, 170))
        self.context_viewTools.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.context_viewTools.setFrameShadow(QtWidgets.QFrame.Raised)
        self.context_viewTools.setObjectName("context_viewTools")
        self.addContext_bt = QtWidgets.QToolButton(self.context_viewTools)
        self.addContext_bt.setGeometry(QtCore.QRect(0, 10, 27, 22))
        self.addContext_bt.setAutoFillBackground(False)
        self.addContext_bt.setStyleSheet("background-color: #e8ecf0;")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("D:/ucheba/python/ts_viewer/plus.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.addContext_bt.setIcon(icon)
        self.addContext_bt.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
        self.addContext_bt.setObjectName("addContext_bt")
        self.delContext_bt = QtWidgets.QToolButton(self.context_viewTools)
        self.delContext_bt.setGeometry(QtCore.QRect(0, 40, 27, 22))
        self.delContext_bt.setAutoFillBackground(False)
        self.delContext_bt.setStyleSheet("background-color: #e8ecf0;")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("D:/ucheba/python/ts_viewer/minus.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.delContext_bt.setIcon(icon1)
        self.delContext_bt.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
        self.delContext_bt.setObjectName("delContext_bt")
        self.showAllContexts_bt = QtWidgets.QToolButton(self.context_viewTools)
        self.showAllContexts_bt.setGeometry(QtCore.QRect(0, 70, 27, 22))
        self.showAllContexts_bt.setAutoFillBackground(False)
        self.showAllContexts_bt.setStyleSheet("background-color: #e8ecf0;")
        self.showAllContexts_bt.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
        self.showAllContexts_bt.setObjectName("showAllContexts_bt")
        self.cleanContextView_bt = QtWidgets.QToolButton(self.context_viewTools)
        self.cleanContextView_bt.setGeometry(QtCore.QRect(0, 100, 27, 22))
        self.cleanContextView_bt.setAutoFillBackground(False)
        self.cleanContextView_bt.setStyleSheet("background-color: #e8ecf0;")
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("D:/ucheba/python/ts_viewer/clean.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.cleanContextView_bt.setIcon(icon2)
        self.cleanContextView_bt.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
        self.cleanContextView_bt.setObjectName("cleanContextView_bt")
        self.message_viewTools = QtWidgets.QFrame(self.centralwidget)
        self.message_viewTools.setGeometry(QtCore.QRect(650, 69, 41, 151))
        self.message_viewTools.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.message_viewTools.setFrameShadow(QtWidgets.QFrame.Raised)
        self.message_viewTools.setObjectName("message_viewTools")
        self.addMessage_bt = QtWidgets.QToolButton(self.message_viewTools)
        self.addMessage_bt.setGeometry(QtCore.QRect(0, 10, 27, 22))
        self.addMessage_bt.setAutoFillBackground(False)
        self.addMessage_bt.setStyleSheet("background-color: #e8ecf0;")
        self.addMessage_bt.setIcon(icon)
        self.addMessage_bt.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
        self.addMessage_bt.setObjectName("addMessage_bt")
        self.delMessage_bt = QtWidgets.QToolButton(self.message_viewTools)
        self.delMessage_bt.setGeometry(QtCore.QRect(0, 40, 27, 22))
        self.delMessage_bt.setAutoFillBackground(False)
        self.delMessage_bt.setStyleSheet("background-color: #e8ecf0;")
        self.delMessage_bt.setIcon(icon1)
        self.delMessage_bt.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
        self.delMessage_bt.setObjectName("delMessage_bt")
        self.showAllMessages_bt = QtWidgets.QToolButton(self.message_viewTools)
        self.showAllMessages_bt.setGeometry(QtCore.QRect(0, 70, 27, 22))
        self.showAllMessages_bt.setAutoFillBackground(False)
        self.showAllMessages_bt.setStyleSheet("background-color: #e8ecf0;")
        self.showAllMessages_bt.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
        self.showAllMessages_bt.setObjectName("showAllMessages_bt")
        self.cleanMessageView_bt = QtWidgets.QToolButton(self.message_viewTools)
        self.cleanMessageView_bt.setGeometry(QtCore.QRect(0, 100, 27, 22))
        self.cleanMessageView_bt.setAutoFillBackground(False)
        self.cleanMessageView_bt.setStyleSheet("background-color: #e8ecf0;")
        self.cleanMessageView_bt.setIcon(icon2)
        self.cleanMessageView_bt.setPopupMode(QtWidgets.QToolButton.DelayedPopup)
        self.cleanMessageView_bt.setObjectName("cleanMessageView_bt")
        self.search_context = QtWidgets.QFrame(self.centralwidget)
        self.search_context.setGeometry(QtCore.QRect(10, 0, 281, 61))
        self.search_context.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.search_context.setFrameShadow(QtWidgets.QFrame.Raised)
        self.search_context.setObjectName("search_context")
        self.context_searchLine = QtWidgets.QLineEdit(self.search_context)
        self.context_searchLine.setGeometry(QtCore.QRect(10, 20, 171, 31))
        self.context_searchLine.setText("")
        self.context_searchLine.setObjectName("context_searchLine")
        self.label_3 = QtWidgets.QLabel(self.search_context)
        self.label_3.setGeometry(QtCore.QRect(20, 0, 141, 20))
        self.label_3.setObjectName("label_3")
        self.btSearchContext = QtWidgets.QPushButton(self.search_context)
        self.btSearchContext.setGeometry(QtCore.QRect(200, 20, 61, 31))
        self.btSearchContext.setObjectName("btSearchContext")
        self.search_message = QtWidgets.QFrame(self.centralwidget)
        self.search_message.setGeometry(QtCore.QRect(340, -1, 431, 51))
        self.search_message.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.search_message.setFrameShadow(QtWidgets.QFrame.Raised)
        self.search_message.setObjectName("search_message")
        self.message_searchLine = QtWidgets.QLineEdit(self.search_message)
        self.message_searchLine.setGeometry(QtCore.QRect(10, 20, 171, 31))
        self.message_searchLine.setText("")
        self.message_searchLine.setObjectName("message_searchLine")
        self.label_4 = QtWidgets.QLabel(self.search_message)
        self.label_4.setGeometry(QtCore.QRect(20, 0, 161, 21))
        font = QtGui.QFont()
        font.setFamily("MS Shell Dlg 2")
        self.label_4.setFont(font)
        self.label_4.setObjectName("label_4")
        self.btSearchMessage = QtWidgets.QPushButton(self.search_message)
        self.btSearchMessage.setGeometry(QtCore.QRect(200, 20, 61, 31))
        self.btSearchMessage.setObjectName("btSearchMessage")
        self.search_in_currContext_chB = QtWidgets.QCheckBox(self.search_message)
        self.search_in_currContext_chB.setGeometry(QtCore.QRect(270, 30, 151, 20))
        self.search_in_currContext_chB.setObjectName("search_in_currContext_chB")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1056, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.toolBar = QtWidgets.QToolBar(MainWindow)
        self.toolBar.setObjectName("toolBar")
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.btLoad.setText(_translate("MainWindow", "LOAD"))
        self.source_editBox.setTitle(_translate("MainWindow", "Исходный текст"))
        self.btChange_source.setText(_translate("MainWindow", "Изменить"))
        self.ru_transBox.setTitle(_translate("MainWindow", "Русский перевод"))
        self.btChange_rus.setText(_translate("MainWindow", "Изменить"))
        self.en_transBox.setTitle(_translate("MainWindow", "English translation"))
        self.btChange_eng.setText(_translate("MainWindow", "Изменить"))
        self.btSave.setText(_translate("MainWindow", "SAVE"))
        self.addContext_bt.setText(_translate("MainWindow", "..."))
        self.delContext_bt.setText(_translate("MainWindow", "..."))
        self.showAllContexts_bt.setText(_translate("MainWindow", "all"))
        self.cleanContextView_bt.setText(_translate("MainWindow", "..."))
        self.addMessage_bt.setText(_translate("MainWindow", "..."))
        self.delMessage_bt.setText(_translate("MainWindow", "..."))
        self.showAllMessages_bt.setText(_translate("MainWindow", "all"))
        self.cleanMessageView_bt.setText(_translate("MainWindow", "..."))
        self.label_3.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:9pt;\">Поиск в contexts</span></p></body></html>"))
        self.btSearchContext.setText(_translate("MainWindow", "Поиск"))
        self.label_4.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:9pt;\">Поиск в messages</span></p></body></html>"))
        self.btSearchMessage.setText(_translate("MainWindow", "Поиск"))
        self.search_in_currContext_chB.setText(_translate("MainWindow", "в текущем контексте"))
        self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
Example #2
0
class UsersWidget(QtWidgets.QDialog):
    signal_close = QtCore.pyqtSignal()

    def btn_add_user_clicked(self):
        user_widget = AddUserWidget('Добавить пользователя')
        user_widget.signal_save_user.connect(self.slot_add_user)
        user_widget.exec()

    def slot_add_user(self):
        self.table_users.model().select()

    def btn_remove_user_clicked(self):
        selected_cells = self.table_users.selectedIndexes()
        if len(selected_cells) == 0:
            QtWidgets.QMessageBox.information(self, 'Пользователи', 'Выберите пользователя для удаления')
            return

        selected_cell = selected_cells[0]
        self.table_users.model().removeRow(selected_cell.row())
        self.table_users.model().submitAll()

    def edit_user(self, selected_cell):
        model = self.table_users.model()
        name = model.data(model.createIndex(selected_cell.row(), 0))
        image_data = model.data(model.createIndex(selected_cell.row(), 1))
        image = None
        if image_data:
            image = QtGui.QPixmap()
            image.loadFromData(image_data)
        user_id = model.data(model.createIndex(selected_cell.row(), 2))
        user_widget = AddUserWidget('Редактировать пользователя', user_id=user_id, name=name, image=image)
        user_widget.signal_save_user.connect(self.slot_add_user)
        user_widget.exec()

    def slot_user_edited(self):
        self.table_users.model().select()

    def btn_edit_user_clicked(self):
        selected_cells = self.table_users.selectedIndexes()
        if len(selected_cells) == 0:
            QtWidgets.QMessageBox.information(self, 'Пользователи', 'Выберите пользователя для редактирования')
            return

        selected_cell = selected_cells[0]
        self.edit_user(selected_cell)

    def table_users_double_clicked(self, index):
        self.edit_user(index)

    def closeEvent(self, event):
        self.signal_close.emit()
        super().closeEvent(event)

    def __init__(self, parent=None):
        super().__init__(parent)

        self.setWindowTitle('Пользователи')
        self.setWindowIcon(QtGui.QIcon('images/logo_era.png'))
        self.setWindowFlags(self.windowFlags() & (~QtCore.Qt.WindowContextHelpButtonHint))

        lbl_users = QtWidgets.QLabel('Пользователи:')

        btn_add_user = QtWidgets.QPushButton('Добавить')
        btn_remove_user = QtWidgets.QPushButton('Удалить')
        btn_edit_user = QtWidgets.QPushButton('Редактировать')

        btn_add_user.clicked.connect(self.btn_add_user_clicked)
        btn_remove_user.clicked.connect(self.btn_remove_user_clicked)
        btn_edit_user.clicked.connect(self.btn_edit_user_clicked)

        model_users = QtSql.QSqlTableModel()
        model_users.setTable('User')
        model_users.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
        model_users.setHeaderData(0, QtCore.Qt.Horizontal, "Имя")
        model_users.setSort(0, QtCore.Qt.AscendingOrder)
        model_users.select()

        self.table_users = TableView()
        self.table_users.setModel(model_users)
        self.table_users.setSelectionMode(QtWidgets.QTableView.SingleSelection)
        self.table_users.setSelectionBehavior(QtWidgets.QTableView.SelectRows)
        self.table_users.setEditTriggers(QtWidgets.QTableView.NoEditTriggers)
        self.table_users.setHorizontalScrollMode(QtWidgets.QTableView.ScrollPerPixel)
        self.table_users.setVerticalScrollMode(QtWidgets.QTableView.ScrollPerPixel)
        self.table_users.verticalHeader().setHidden(True)
        self.table_users.horizontalHeader().setStretchLastSection(True)
        self.table_users.setColumnHidden(1, True)
        self.table_users.setColumnHidden(2, True)

        self.table_users.doubleClicked.connect(self.table_users_double_clicked)

        layout_buttons = QtWidgets.QHBoxLayout()
        layout_buttons.addWidget(lbl_users)
        layout_buttons.addWidget(btn_add_user)
        layout_buttons.addWidget(btn_remove_user)
        layout_buttons.addWidget(btn_edit_user)

        layout_main = QtWidgets.QVBoxLayout()
        layout_main.addLayout(layout_buttons)
        layout_main.addWidget(self.table_users)

        self.setLayout(layout_main)