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 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)
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()
# 删除选项卡时的回调,如果返回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()
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()