def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent=parent) layout = QtWidgets.QVBoxLayout() text = QtWidgets.QLabel("Under development!") tab_widget = QtWidgets.QTabWidget() button_hlayout = QtWidgets.QHBoxLayout() button_hlayout.addStretch() # Generic update button update_button = QtWidgets.QPushButton("Update") update_button.setMinimumWidth(120) update_button.setStyleSheet(style.flat_button) button_hlayout.addWidget(update_button) # Create basic layout layout.addWidget(text) layout.addWidget(tab_widget) layout.addLayout(button_hlayout) self.setLayout(layout) self.tab_widget = tab_widget self.update_button = update_button self.connect_signals()
def __init__(self, side, parent=None): super(SelectorWidget, self).__init__(parent=parent) def icon(name): return lib.icon(name, color=SIDE_COLOR[side]) body = { "tab": QtWidgets.QTabWidget(), } selector = { "host": HostSelectorWidget(), "databse": DatabaseSelectorWidget(), } body["tab"].addTab(selector["databse"], icon("cloud"), "Published") body["tab"].addTab(selector["host"], icon("home"), "In Scene") layout = QtWidgets.QHBoxLayout(self) layout.addWidget(body["tab"]) # Connect body["tab"].currentChanged.connect(self.on_tab_changed) selector["host"].container_picked.connect(self.on_container_picked) selector["host"].host_selected.connect(self.on_host_selected) selector["databse"].version_changed.connect(self.on_version_changed) # Init self.selector = selector self.side = side self._host_tab_enabled = False if not has_host() or side == SIDE_B: body["tab"].setCurrentIndex(0) else: body["tab"].setCurrentIndex(1)
def __init__(self, parent=None): super(Window, self).__init__(parent=parent) self.setWindowIcon(lib.icon("share-alt-square", color="#EC905C")) self.setWindowTitle("Model Differ") self.setWindowFlags(QtCore.Qt.Window) page = { "tab": QtWidgets.QTabWidget(), "tables": list(), } page["tab"].addTab(QtWidgets.QWidget(), "+") layout = QtWidgets.QVBoxLayout(self) layout.addWidget(page["tab"]) # Connect page["tab"].currentChanged.connect(self.on_tab_changed) # Init self.page = page self.create_tab() self.resize(840, 720)
def create_tab(self): widget = pindict.to_pindict({ "main": QtWidgets.QWidget(), "top": { "main": QtWidgets.QWidget(), "label": QtWidgets.QLabel("Table Name:"), "line": QtWidgets.QLineEdit(), }, "ctrl": { "tabs": { "main": QtWidgets.QTabWidget(), "focus": views.FocusComparing(), "select": { "main": QtWidgets.QWidget(), "selectorA": views.SelectorWidget(side=views.SIDE_A), "selectorB": views.SelectorWidget(side=views.SIDE_B), }, }, }, "table": { "tabs": { "main": QtWidgets.QTabWidget(), "comparer": views.ComparingTable(), }, }, "statusLine": widgets.StatusLineWidget(main_logger, self), }) with widget.pin("top") as top: layout = QtWidgets.QHBoxLayout(top["main"]) layout.addWidget(top["label"]) layout.addWidget(top["line"]) with widget.pin("ctrl.tabs.select") as selectors: layout = QtWidgets.QHBoxLayout(selectors["main"]) layout.addWidget(selectors["selectorA"]) layout.addSpacing(-12) layout.addWidget(selectors["selectorB"]) layout.setContentsMargins(2, 2, 2, 2) with widget.pin("ctrl.tabs") as ctrl: icon_1 = lib.icon("hand-o-right", "white") icon_2 = lib.icon("bullseye", "#BEBEBE") ctrl["main"].addTab(ctrl["select"]["main"], icon_1, "Select") ctrl["main"].addTab(ctrl["focus"], icon_2, "Focus") ctrl["main"].setTabPosition(QtWidgets.QTabWidget.West) with widget.pin("table.tabs") as table: icon = lib.icon("adjust", "#BEBEBE") table["main"].addTab(table["comparer"], icon, "Compare") table["main"].setTabPosition(QtWidgets.QTabWidget.West) layout = QtWidgets.QVBoxLayout(widget["main"]) layout.addWidget(widget["top"]["main"]) layout.addWidget(widget["ctrl"]["tabs"]["main"]) layout.addWidget(widget["table"]["tabs"]["main"], stretch=True) layout.addWidget(widget["statusLine"]) layout.setContentsMargins(4, 4, 4, 4) tab = self.page["tab"] # Add Tab name = "New %d" % tab.count() index = tab.addTab(widget["main"], name) tab.setCurrentIndex(index) widget["top"]["line"].setText(name) self.page["tables"].append(widget) # Connect with widget.pin("table.tabs") as table: with widget.pin("ctrl.tabs.select") as selectors: selectors["selectorA"].connect_comparer(table["comparer"]) selectors["selectorB"].connect_comparer(table["comparer"]) with widget.pin("ctrl.tabs") as ctrl: table["comparer"].picked.connect(ctrl["focus"].on_picked) ctrl["main"].currentChanged.connect( ctrl["focus"].focus_enabled) ctrl["main"].currentChanged.connect( table["comparer"].focus_enabled) with widget.pin("top") as top: top["line"].textChanged.connect( lambda text: tab.setTabText(index, text))