python类QFile()的实例源码

lineyka_chat.py 文件源码 项目:lineyka-b3d 作者: volodya-renderberg 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __init__(self, MW):
        G.MW = MW

        task_data = MW.current_task
        nik_name = MW.current_user
        project = MW.current_project

        # make widjet
        ui_path = MW.chat_main_path
        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(ui_path)
        #file.open(QtCore.QFile.ReadOnly)
        window = G.MW.chatMain = loader.load(file, MW)
        file.close()

        # fill meta data
        window.setWindowTitle('Lineyka Chat')
        window.chat_nik_name_label.setText(nik_name)
        window.chat_asset_name_label.setText(task_data['asset'])
        window.chat_task_name_label.setText(task_data['task_name'].split(':')[1])

        # button connect
        window.close_button.clicked.connect(partial(MW.close_window, window))
        window.reload_button.clicked.connect(partial(self.chat_load_topics, window))
        window.chat_add_topic_button.clicked.connect(partial(self.chat_new_topic_ui, window))

        window.show()

        self.chat_load_topics(window)

        print(MW.chat_status)

        # edit read_status
        if G.MW.chat_status == 'manager':
            result = G.MW.db_chat.task_edit_rid_status_read(project, task_data, nik_name)
            if not result[0]:
                G.MW.message(result[1], 2)
                return
lineyka_chat.py 文件源码 项目:lineyka-b3d 作者: volodya-renderberg 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def chat_image_view_ui(self, button):
        if not button.img_path:
            return
        # make widjet
        ui_path = G.MW.chat_img_viewer_path
        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(ui_path)
        #file.open(QtCore.QFile.ReadOnly)
        img_window = G.MW.chatImgViewer = loader.load(file, G.MW)
        file.close()


        # SHOW IMAGE
        image = QtGui.QImage(button.img_path)
        img_window.setWindowTitle(button.img_path)

        img_window.image_label.setBackgroundRole(QtGui.QPalette.Base)
        img_window.image_label.setSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
        img_window.image_label.setScaledContents(True)

        img_window.image_label.setPixmap(QtGui.QPixmap.fromImage(image))

        # connect button
        img_window.cansel_button.clicked.connect(partial(G.MW.close_window, img_window))

        img_window.show()
lineyka_chat.py 文件源码 项目:lineyka 作者: volodya-renderberg 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def chat_new_topic_ui(self, window):
        # make widjet
        ui_path = G.MW.chat_add_topic_path
        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(ui_path)
        #file.open(QtCore.QFile.ReadOnly)
        add_window = G.MW.chatAddTopic = loader.load(file, G.MW)
        file.close()

        # set modal window
        add_window.setWindowModality(QtCore.Qt.WindowModal)
        add_window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        # ****** add first line
        # H
        h_layout = QtGui.QHBoxLayout()
        line_frame = QtGui.QFrame(parent = add_window.new_topics_frame)
        # button
        button = QtGui.QPushButton('img', parent = line_frame)
        button.setFixedSize(100, 100)
        button.img_path = False
        h_layout.addWidget(button)
        # -- button connect
        button.clicked.connect(partial(self.chat_image_view_ui, button))
        button.setContextMenuPolicy( QtCore.Qt.ActionsContextMenu )
        addgrup_action = QtGui.QAction( 'Inser Image From Clipboard', add_window)
        addgrup_action.triggered.connect(partial(self.chat_add_img_to_line, button))
        button.addAction( addgrup_action )

        # text field
        text_field = QtGui.QTextEdit(parent = line_frame)
        #text_field = QtGui.QTextBrowser(parent = line_frame)
        text_field.setMaximumHeight(100)
        h_layout.addWidget(text_field)
        line_frame.setLayout(h_layout)
        # V
        v_layout = QtGui.QVBoxLayout()
        v_layout.addWidget(line_frame)
        add_window.new_topics_frame.setLayout(v_layout)

        # ****** append line data
        add_window.line_data = {}
        add_window.line_data['1'] = (button, text_field)

        # connect button
        add_window.cansel_button.clicked.connect(partial(G.MW.close_window, add_window))
        add_window.add_line_button.clicked.connect(partial(self.chat_add_line_to_message, add_window, v_layout))
        add_window.send_message_button.clicked.connect(partial(self.chat_new_topic_action, add_window, G.MW.chat_status))

        add_window.show()
lineyka_manager.py 文件源码 项目:lineyka 作者: volodya-renderberg 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def add_artist_ui(self):
        # get current level
        #copy = db.artist()
        current_artist = self.db_workroom.get_user()
        if not current_artist[0]:
            self.message(current_artist[1], 2)
            return
        current_nik_name = current_artist[1][0]
        ask = self.db_workroom.read_artist({'nik_name': current_nik_name})
        current_level = ask[1][0]['level']

        if current_level not in self.db_workroom.manager_levels:
            self.message('No Access!', 3)
            return

        # get levels
        levels = []
        for level in self.db_workroom.user_levels:
            levels.append(level)
            if level == current_level:
                break
        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(self.artist_dialog_path)
        #file.open(QtCore.QFile.ReadOnly)
        self.newArtistDialog = loader.load(file, self)
        file.close()

        # edit widget
        self.newArtistDialog.setWindowTitle('add New Artist')
        self.newArtistDialog.workroom_field.setEnabled(False)
        self.newArtistDialog.share_dir_field.setEnabled(False)
        self.newArtistDialog.level_combobox.addItems(levels)

        # workroom dialog
        self.newArtistDialog.artist_edit_workroom_button.clicked.connect(partial(self.artist_edit_workroom_ui, self.newArtistDialog))

        # edit button
        self.newArtistDialog.get_share_dir_button.clicked.connect(partial(self.get_share_dir, self.newArtistDialog.share_dir_field))
        self.newArtistDialog.artist_dialog_cancel.clicked.connect(partial(self.add_artist_action, False))
        self.newArtistDialog.artist_dialog_ok.clicked.connect(partial(self.add_artist_action, True))

        # set modal window
        self.newArtistDialog.setWindowModality(QtCore.Qt.WindowModal)
        self.newArtistDialog.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        self.newArtistDialog.show()
lineyka_manager.py 文件源码 项目:lineyka 作者: volodya-renderberg 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def artist_edit_workroom2_ui(self, current_widget):
        # get all workrooms
        copy = self.db_workroom
        workrooms = copy.get_list_workrooms()

        if not workrooms[0]:
            self.message(workrooms[1], 3)
            return

        # get exists workrooms
        workroom_list = []
        if current_widget.workroom_field.text():
            workroom_list = json.loads(current_widget.workroom_field.text())

        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(self.select_from_check_button_dialog_path)
        #file.open(QtCore.QFile.ReadOnly)
        window = self.selectWorkroomDialog2 = loader.load(file, self)
        file.close()

        # edit widget
        window.setWindowTitle('Select WorkRoom')

        # -- add checkbox
        checkbox_list = []
        layout = QtGui.QVBoxLayout()
        for wr in workrooms[1]:
            wr_name = wr['name']
            box = QtGui.QCheckBox(wr_name, window.check_buttons_frame)
            checkbox_list.append(box)
            if wr_name in workroom_list:
                box.setCheckState(QtCore.Qt.CheckState.Checked)

            layout.addWidget(box)
        window.check_buttons_frame.setLayout(layout)

        # -- edit button
        window.select_from_chbut_cansel_button.clicked.connect(partial(self.close_window, window))
        window.select_from_chbut_apply_button.clicked.connect(partial(self.artist_edit_workroom2_action, current_widget, window, checkbox_list))

        # set modal window
        window.setWindowModality(QtCore.Qt.WindowModal)
        window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        window.show()
lineyka_manager.py 文件源码 项目:lineyka 作者: volodya-renderberg 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def rename_set_of_tasks_ui(self, table):
        column = table.columnCount()
        name_column = None
        for i in range(0, column):
            head_item = table.horizontalHeaderItem(i)
            if head_item.text() == 'name':
                name_column = i
                break

        # get selected rows
        selected = table.selectedItems()
        lists = []
        for item in selected:
            if item.column() == name_column:
                lists.append(item.text())

        if lists == []:
            self.message('Not Selected Set', 2)
            return

        name = lists[0]

        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(self.new_dialog_path)
        #file.open(QtCore.QFile.ReadOnly)
        window = self.setProjectDialog = loader.load(file, self)
        file.close()

        # edit widget
        window.setWindowTitle(('Rename: ' + name))
        window.new_dialog_label.setText('New Name of Set:')
        window.new_dialog_cancel.clicked.connect(partial(self.close_window, window))
        window.new_dialog_ok.clicked.connect(partial(self.rename_set_of_tasks_action, name, window))

        # set modal window
        window.setWindowModality(QtCore.Qt.WindowModal)
        window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        window.show()

        print('rename set of tasks ui')
lineyka_manager.py 文件源码 项目:lineyka 作者: volodya-renderberg 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def edit_asset_type_ui(self, table):
        column = table.columnCount()
        name_column = None
        for i in range(0, column):
            head_item = table.horizontalHeaderItem(i)
            if head_item.text() == 'name':
                name_column = i
                break

        # get selected rows
        selected = table.selectedItems()
        lists = []
        for item in selected:
            if item.column() == name_column:
                lists.append(item.text())

        if lists == []:
            self.message('Not Selected Set', 2)
            return

        name = lists[0]

        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(self.combo_dialog_path)
        #file.open(QtCore.QFile.ReadOnly)
        window = self.setProjectDialog = loader.load(file, self)
        file.close()

        # edit widget
        #copy = db.studio()
        copy = self.db_studio
        window.setWindowTitle(('Edit Asset Type: ' + name))
        window.combo_dialog_label.setText('New Name of Set:')
        window.combo_dialog_combo_box.addItems(copy.asset_types)
        window.combo_dialog_cancel.clicked.connect(partial(self.close_window, window))
        window.combo_dialog_ok.clicked.connect(partial(self.edit_asset_type_action, name, window))

        # set modal window
        window.setWindowModality(QtCore.Qt.WindowModal)
        window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        window.show()
        print('edit asset type')
lineyka_manager.py 文件源码 项目:lineyka 作者: volodya-renderberg 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def rename_series_ui(self, table):
        # get project
        project = self.myWidget.set_comboBox_01.currentText()
        if project == '-- select project --':
            self.message('Not Project!', 3)
            return

        # get old series
        column = table.columnCount()
        name_column = None
        for i in range(0, column):
            head_item = table.horizontalHeaderItem(i)
            if head_item.text() == 'name':
                name_column = i
                break

        # get selected rows
        selected = table.selectedItems()
        lists = []
        for item in selected:
            if item.column() == name_column:
                lists.append(item.text())

        if lists == []:
            self.message('Not Selected Series', 2)
            return

        name = lists[0]


        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(self.new_dialog_path)
        #file.open(QtCore.QFile.ReadOnly)
        window = self.createSeriesDialog = loader.load(file, self)
        file.close()

        # edit widget
        window.setWindowTitle(('Rename Series: \"' + name + '\"'))
        window.new_dialog_label.setText('New Name of Series:')
        window.new_dialog_name.setText(name)
        window.new_dialog_cancel.clicked.connect(partial(self.close_window, window))
        window.new_dialog_ok.clicked.connect(partial(self.rename_series_action, window, name))

        # set modal window
        window.setWindowModality(QtCore.Qt.WindowModal)
        window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        window.show()
        print('rename series ui')
lineyka_manager.py 文件源码 项目:lineyka 作者: volodya-renderberg 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def rename_group_ui(self, table):
        # get project
        project = self.myWidget.set_comboBox_01.currentText()
        if project == '-- select project --':
            self.message('Not Project!', 3)
            return

        # get old series
        column = table.columnCount()
        name_column = None
        for i in range(0, column):
            head_item = table.horizontalHeaderItem(i)
            if head_item.text() == 'name':
                name_column = i
                break

        # -- get selected rows
        selected = table.selectedItems()
        lists = []
        for item in selected:
            if item.column() == name_column:
                lists.append(item.text())

        if lists == []:
            self.message('Not Selected Series', 2)
            return

        # -- get name
        name = lists[0]

        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(self.new_dialog_path)
        #file.open(QtCore.QFile.ReadOnly)
        window = self.createSeriesDialog = loader.load(file, self)
        file.close()

        # edit widget
        window.setWindowTitle(('Rename Group: \"' + name + '\"'))
        window.new_dialog_label.setText('New Name of Group:')
        window.new_dialog_name.setText(name)
        window.new_dialog_cancel.clicked.connect(partial(self.close_window, window))
        window.new_dialog_ok.clicked.connect(partial(self.rename_group_action, window, name, project))

        # set modal window
        window.setWindowModality(QtCore.Qt.WindowModal)
        window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        window.show()

        print('rename group ui')
lineyka_manager.py 文件源码 项目:lineyka 作者: volodya-renderberg 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def change_asset_group_ui(self, table):
        column = table.columnCount()
        name_column = None
        for i in range(0, column):
            head_item = table.horizontalHeaderItem(i)
            if head_item.text() == 'name':
                name_column = i
                break
        '''
        # get selected rows
        selected = table.selectedItems()
        lists = []
        for item in selected:
            if item.column() == name_column:
                lists.append(item.text())

        if lists == []:
            self.message('Not Selected Group', 2)
            return
        asset_name = lists[0]
        '''
        # get asset data
        asset_data = table.currentItem().asset
        asset_name = asset_data['name']

        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(self.combo_dialog_path)
        #file.open(QtCore.QFile.ReadOnly)
        window = self.setProjectDialog = loader.load(file, self)
        file.close()

        # edit widget
        #copy = db.group()
        group_list = ['-- new groups --']
        #result = copy.get_by_type_list(self.current_project, [self.current_group['type']])
        #result = copy.get_by_type_list(self.current_project, [asset_data['type']])
        result = self.db_group.get_by_type_list(self.current_project, [asset_data['type']])
        if result[0]:
            for row in result[1]:
                if row['name'] != self.current_group['name']:
                    group_list.append(row['name'])

            window.groups = result[1]
        else:
            print(result[1])

        window.setWindowTitle(('Change Group Asset: \"' + asset_name + '\"'))
        window.combo_dialog_label.setText('Select New Group:')
        window.combo_dialog_combo_box.addItems(group_list)
        window.combo_dialog_cancel.clicked.connect(partial(self.close_window, window))
        window.combo_dialog_ok.clicked.connect(partial(self.change_asset_group_action, asset_data, window))

        # set modal window
        window.setWindowModality(QtCore.Qt.WindowModal)
        window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        window.show()

        print('change asset group')
lineyka_manager.py 文件源码 项目:lineyka 作者: volodya-renderberg 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def tm_change_task_artist_ui(self, *args):
        # get item
        item = self.myWidget.task_manager_table.currentItem()

        # task workroom
        task_workroom = item.task['workroom']

        # get list of active artists
        result = self.db_workroom.read_artist({'status':'active'})
        if not result[0]:
            self.message(result[1], 2)
            return
        active_artists_list = []
        for row in result[1]:
            if row['workroom']:
                artist_workrooms = json.loads(row['workroom'])
                if task_workroom in artist_workrooms:
                    active_artists_list.append(row['nik_name'])
            else:
                continue

        active_artists_list.sort()
        active_artists_list.insert(0, '-None-')

        # create window
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(self.combo_dialog_path)
        #file.open(QtCore.QFile.ReadOnly)
        window = self.changeActivityWindow = loader.load(file, self)
        file.close()

        # set modal window
        window.setWindowModality(QtCore.Qt.WindowModal)
        window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        # edit window
        window.setWindowTitle(('Change Artist of Task: \'' + item.task['task_name'] + '\"'))
        window.combo_dialog_label.setText('Select Artist:')
        window.combo_dialog_combo_box.addItems(active_artists_list)
        window.combo_dialog_cancel.clicked.connect(partial(self.close_window, window))
        window.combo_dialog_ok.clicked.connect(partial(self.tm_change_task_artist_action, window, item))

        window.show()
lineyka_chat.py 文件源码 项目:lineyka-b3d 作者: volodya-renderberg 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def chat_new_topic_ui(self, window):
        # make widjet
        ui_path = G.MW.chat_add_topic_path
        # widget
        loader = QtUiTools.QUiLoader()
        file = QtCore.QFile(ui_path)
        #file.open(QtCore.QFile.ReadOnly)
        add_window = G.MW.chatAddTopic = loader.load(file, G.MW)
        file.close()

        # set modal window
        add_window.setWindowModality(QtCore.Qt.WindowModal)
        add_window.setAttribute(QtCore.Qt.WA_DeleteOnClose, True)

        # ****** add first line
        # H
        h_layout = QtGui.QHBoxLayout()
        line_frame = QtGui.QFrame(parent = add_window.new_topics_frame)
        # button
        button = QtGui.QPushButton('img', parent = line_frame)
        button.setFixedSize(100, 100)
        button.img_path = False
        h_layout.addWidget(button)
        # -- button connect
        button.clicked.connect(partial(self.chat_image_view_ui, button))
        button.setContextMenuPolicy( QtCore.Qt.ActionsContextMenu )
        addgrup_action = QtGui.QAction( 'Inser Image From Clipboard', add_window)
        addgrup_action.triggered.connect(partial(self.chat_add_img_to_line, button))
        button.addAction( addgrup_action )

        # text field
        text_field = QtGui.QTextEdit(parent = line_frame)
        #text_field = QtGui.QTextBrowser(parent = line_frame)
        text_field.setMaximumHeight(100)
        h_layout.addWidget(text_field)
        line_frame.setLayout(h_layout)
        # V
        v_layout = QtGui.QVBoxLayout()
        v_layout.addWidget(line_frame)
        add_window.new_topics_frame.setLayout(v_layout)

        # ****** append line data
        add_window.line_data = {}
        add_window.line_data['1'] = (button, text_field)

        # connect button
        add_window.cansel_button.clicked.connect(partial(G.MW.close_window, add_window))
        add_window.add_line_button.clicked.connect(partial(self.chat_add_line_to_message, add_window, v_layout))
        add_window.send_message_button.clicked.connect(partial(self.chat_new_topic_action, add_window, G.MW.chat_status))

        add_window.show()


问题


面经


文章

微信
公众号

扫码关注公众号