예제 #1
0
    def __init__(self):
        super(MainWindow, self).__init__()

        widget = QWidget()
        self.setCentralWidget(widget)

        fileMenu = self.menuBar().addMenu("File")
        newRepository = fileMenu.addAction("New Repository")
        openRepository = fileMenu.addAction("Open Repository")
        rollbackRepository = fileMenu.addAction("Discard last commit")

        newRepository.triggered.connect(self.create_new_repository)
        openRepository.triggered.connect(self.open_repository)
        rollbackRepository.triggered.connect(self.discard_last_commit)

        self.button = QPushButton("hello there")

        container = QVBoxLayout()
        menuContainer = QHBoxLayout()
        topContainer = QHBoxLayout()
        bottomContainer = QHBoxLayout()
        self.console = Console(bottomContainer)
        self.tree = TreeView(topContainer)

        container.addLayout(menuContainer, 0)
        container.addLayout(topContainer, 5)
        container.addLayout(bottomContainer, 3)
        self.tabs = TabView(topContainer)

        widget.setLayout(container)
예제 #2
0
    def play_set(self, namespace, tabset):
        """
        :param namespace: namespace for input values from this tabset saved in this deployment config
        :param tabset: tabset config DotMap
        :return: A complete TabView widget
        """
        logging.debug(self.__class__.__name__ + ': ' + sys._getframe().f_code.co_name)

        # Reconfigure hotkeys and get keytexts
        # For now we're just going to turn them all on
        # TODO: Fix this so it's per-tab
        # keylist = []
        # for name, hotkey in self.hotkeys:
        #     keylist.append(hotkey.name)
        keytexts = self.reconfigure_hotkeys(self.hotkeys.keys())

        # Build tabs
        factory = widgets.WidgetFactory()
        tabview_tabs = []
        for blueprint in tabset:
            blueprint['namespace'] = namespace
            blueprint['keytexts'] = keytexts
            blueprint['director'] = self
            # logobj(blueprint)
            tabview_tabs.append(([blueprint['name'], factory.create_widget(DotMap(blueprint)), False]))

        # Build TabView
        return TabView(self, 'tab_active', 'tab_inactive', tabview_tabs, focus=0)
예제 #3
0
        current_time = time.strftime('[%Y-%m-%d %H:%M:%S]',
                                     time.localtime(time.time()))
        logmsg_in = str(current_time) + logmsg + "\n"  # 换行
        self.log_data_Text.configure(state='normal')
        self.log_data_Text.insert(END, logmsg_in)
        self.log_data_Text.see(END)
        self.log_data_Text.configure(state='disabled')


# ----------------------- 使用示例 ----------------------------
root = tk.Tk()
root.title('编码工具集')
root.geometry("1200x640")
root.iconbitmap("icon.ico")
os.remove("icon.ico")
tab_view = TabView(root,
                   generate_body=create_body,
                   select_listen=select,
                   remove_listen=remove)

toolframe = Frame(tab_view.body)
toolframe.pack(fill=BOTH, expand=True)
gui = ToolsGui(toolframe)
gui.set_init_window()
tab_view.add_tab(toolframe, '编码工具')
body = tab_view.body

tab_view.pack(fill=BOTH, expand=True, pady=2)

root.mainloop()
예제 #4
0
# 删除选项卡时的回调,如果返回False将不会删除
def remove(index):
    print("remove tab -->", index)
    if messagebox.askokcancel("标题", "确定要关闭该选项卡吗?"):
        return True
    else:
        return False


# -------------- 使用示例 -----------------
root = tk.Tk()
root.geometry("640x300")

tab_view = TabView(root,
                   generate_body=create_body,
                   select_listen=select,
                   remove_listen=remove)

body = tab_view.body

label_1 = tk.Label(tab_view.body, text="this is tab1")
label_2 = tk.Label(tab_view.body, text="this is tab2")

# 第一个参数是向body中添加的widget, 第二个参数是tab标题
tab_view.add_tab(label_1, "tabs1")
tab_view.add_tab(label_2, "tabs2")

# TabView需要向x、y方向填充,且expand应设置为yes
tab_view.pack(fill="both", expand='yes', pady=2)

root.mainloop()
예제 #5
0
class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()

        widget = QWidget()
        self.setCentralWidget(widget)

        fileMenu = self.menuBar().addMenu("File")
        newRepository = fileMenu.addAction("New Repository")
        openRepository = fileMenu.addAction("Open Repository")
        rollbackRepository = fileMenu.addAction("Discard last commit")

        newRepository.triggered.connect(self.create_new_repository)
        openRepository.triggered.connect(self.open_repository)
        rollbackRepository.triggered.connect(self.discard_last_commit)

        self.button = QPushButton("hello there")

        container = QVBoxLayout()
        menuContainer = QHBoxLayout()
        topContainer = QHBoxLayout()
        bottomContainer = QHBoxLayout()
        self.console = Console(bottomContainer)
        self.tree = TreeView(topContainer)

        container.addLayout(menuContainer, 0)
        container.addLayout(topContainer, 5)
        container.addLayout(bottomContainer, 3)
        self.tabs = TabView(topContainer)

        widget.setLayout(container)

    def set_favorites(self, favoritesRoot):
        self.tabs.clear()
        self.tree.set_favorites(favoritesRoot)

    def get_logger(self):
        return self.console

    def create_new_repository(self):
        directory = QFileDialog.getExistingDirectory()
        new_repository(directory)
        self.currentRepository = directory

    def open_repository(self):
        directory = QFileDialog.getExistingDirectory()
        open_repository(directory)
        self.currentRepository = directory

    def discard_last_commit(self):
        if (
            QMessageBox.warning(
                self,
                "Discard last commit?",
                "this will do a hard reset to the previous commit, so the current one will be lost",
                QMessageBox.Yes,
                QMessageBox.No,
            )
            == QMessageBox.Yes
        ):
            rollback()