def __init__(self, parent): QtGui.QWidget.__init__(self, parent) self.debug = False self.ogtGroup = None self.mainLayout = xwidgets.vlayout() self.setLayout(self.mainLayout) ## View Checkboxes self.topLay = xwidgets.hlayout(margin=5, spacing=5) self.mainLayout.addLayout(self.topLay) self.buttGroup = QtGui.QButtonGroup(self) self.buttGroup.setExclusive(True) self.radFixed = QtGui.QRadioButton("Show Fixed Values") self.radFixed.setChecked(True) self.topLay.addWidget(self.radFixed) self.buttGroup.addButton(self.radFixed, GroupSourceGridModel.FIXED) self.radRaw = QtGui.QRadioButton("Show Raw Values") self.topLay.addWidget(self.radRaw) self.buttGroup.addButton(self.radRaw, GroupSourceGridModel.RAW) self.topLay.addStretch(30) self.buttGroup.buttonClicked.connect(self.on_view_raw_clicked) ## Main Table self.table = QtGui.QTableView() self.mainLayout.addWidget(self.table, 0) self.model = QtGui.QStandardItemModel() self.table.setModel(self.model)
def __init__(self, parent=None, title=None, width=None, hide_labels=False, is_group=False, toggle_icons=False, toggle_callback=None): QtGui.QWidget.__init__(self, parent) if width: self.setFixedWidth(width) self.icon_on = Ico.FilterOn self.icon_off = Ico.FilterOff self.toggle_icons = toggle_icons self.toggle_callback = toggle_callback self.hide_labels = hide_labels self.buttonGroup = None self.is_group = is_group if self.is_group: self.buttonGroup = QtGui.QButtonGroup() self.buttonGroup.setExclusive(True) if self.toggle_callback: self.buttonGroup.buttonClicked.connect(self.on_button_clicked) self.group_var = None self.callback = None self.show_icons = True self.icon_size = 12 self.bg_color = '#333333' ## Main Layout mainLayout = QtGui.QVBoxLayout() mainLayout.setContentsMargins(0, 0, 0, 0) mainLayout.setSpacing(0) self.setLayout(mainLayout) ## Label self.label = QtGui.QLabel() bg = "#8F8F8F" ##eeeeee" fg = "#eeeeee" ##333333" lbl_sty = "background: %s; " % bg # qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 #fefefe, stop: 1 #CECECE);" lbl_sty += " color: %s; font-size: 8pt; padding: 1px;" % fg # border: 1px outset #cccccc;" self.label.setStyleSheet(lbl_sty) self.label.setAlignment(QtCore.Qt.AlignCenter) mainLayout.addWidget(self.label) ## Toolbar self.toolbar = QtGui.QToolBar() self.toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) self.toolbar.setFixedHeight(30) mainLayout.addWidget(self.toolbar) if title: self.set_title(title)
def __init__(self, parent=None): super(MainUI, self).__init__(parent) # setup ui self.setupUi(self) # hide title bar self.setWindowFlags(QtCore.Qt.FramelessWindowHint) # add a size grip size_grip = QtGui.QSizeGrip(self) self.sizegrip_layout.addWidget( size_grip, 0, QtCore.Qt.AlignBottom | QtCore.Qt.AlignRight) # shadow effect self.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.shadow = QtGui.QGraphicsDropShadowEffect(self) self.shadow.setBlurRadius(15) self.shadow.setOffset(0, 0) self.main_frame.setGraphicsEffect(self.shadow) # enable drag and move self.title_bar_grp.last_clicked_pos = self.user_info_grp.last_clicked_pos = None self.title_bar_grp.main_dialog = self.user_info_grp.main_dialog = self cgtk_py.implant_method(self.title_bar_grp, mousePressEvent, "mousePressEvent") cgtk_py.implant_method(self.title_bar_grp, mouseMoveEvent, "mouseMoveEvent") cgtk_py.implant_method(self.title_bar_grp, mouseReleaseEvent, "mouseReleaseEvent") cgtk_py.implant_method(self.user_info_grp, mousePressEvent, "mousePressEvent") cgtk_py.implant_method(self.user_info_grp, mouseMoveEvent, "mouseMoveEvent") cgtk_py.implant_method(self.user_info_grp, mouseReleaseEvent, "mouseReleaseEvent") # make tab button radio self.tab_btn_grp = QtGui.QButtonGroup() self.tab_btn_grp.addButton(self.action_btn) self.tab_btn_grp.addButton(self.task_btn) self.tab_btn_grp.addButton(self.publish_btn) self.tab_btn_grp.addButton(self.chat_btn) self.tab_btn_grp.setExclusive(True) # change tab page self.tab_btn_grp.buttonClicked.connect(self.tab_change)
def __init__(self, parent=None, mode=None): QtGui.QWidget.__init__(self, parent) self.debug = False self.mode = mode if self.mode == None: freak_out() self.mainLayout = QtGui.QVBoxLayout() self.mainLayout.setSpacing(0) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.setLayout(self.mainLayout) self.toolBar = QtGui.QToolBar() self.mainLayout.addWidget(self.toolBar) self.buttGroupFilters = QtGui.QButtonGroup(self) self.buttGroupFilters.setExclusive(False) self.buttWarnings = xwidgets.XToolButton(text="Show Warnings", checkable=True, checked=True) self.buttGroupFilters.addButton(self.buttWarnings) self.buttErrors = xwidgets.XToolButton(text="Show Errors", checkable=True, checked=True) self.buttGroupFilters.addButton(self.buttErrors) self.buttGroupFilters.buttonClicked.connect(self.on_update_filter) self.toolBar.addWidget(self.buttWarnings) self.toolBar.addWidget(self.buttErrors) #============================= ## Set up tree self.tree = QtGui.QTreeView() self.mainLayout.addWidget(self.tree, 30) self.model = ErrorsListModel(mode=self.mode) self.tree.setModel(self.model) self.tree.setRootIsDecorated(False) self.tree.header().setStretchLastSection(True) #self.tree.setSortingEnabled(True) """ hi = self.tree.headerItem() hi.setText(C_ERR.err, "Type") hi.setText(C_ERR.lidx, "Line") hi.setText(C_ERR.cidx, "Col") hi.setText(C_ERR.rule, "Rule") hi.setText(C_ERR.highlight, "Rule") hi.setText(C_ERR.descr, "Description") hi.setText(C_ERR.search, "search") """ self.tree.setColumnHidden(C_ERR.err, True) self.tree.setColumnHidden(C_ERR.search, True) self.tree.setColumnWidth(C_ERR.lidx, 30) self.tree.setColumnWidth(C_ERR.cidx, 30) self.tree.setColumnWidth(C_ERR.rule, 50) self.tree.setColumnWidth(C_ERR.highlight, 8)
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.debug = False self.setObjectName("AGS4GroupsBrowser") self.proxy = QtGui.QSortFilterProxyModel() self.proxy.setSourceModel(G.ags.modelGroups) self.proxy.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) ##=============================================== self.mainLayout = QtGui.QVBoxLayout() self.mainLayout.setSpacing(0) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.setLayout(self.mainLayout) self.splitter = QtGui.QSplitter(self) self.splitter.setObjectName(self.objectName() + "groups_splitter") self.mainLayout.addWidget(self.splitter) ############################################################################## leftWidget = QtGui.QWidget() leftLayout = xwidgets.vlayout() leftWidget.setLayout(leftLayout) self.splitter.addWidget(leftWidget) self.tabFilter = QtGui.QTabWidget() leftLayout.addWidget(self.tabFilter) ##================================ ## Filter grpFilter = xwidgets.GroupGridBox() mmm = 5 grpFilter.setContentsMargins(mmm, mmm, mmm, mmm) # grpFilter.grid.setSpacing(5) # grpFilter.setFixedWidth(150) self.tabFilter.addTab(grpFilter, "Filter") # filter combo self.buttGroupFilter = QtGui.QButtonGroup() self.buttGroupFilter.setExclusive(True) #self.comboSearchFor = QtGui.QComboBox() #grpFilter.addWidget(self.comboSearchFor) for ridx, s in enumerate(["Code", "Description", "Code + Description"]): rad = QtGui.QRadioButton() rad.setText(s) grpFilter.grid.addWidget(rad, ridx, 0, 1, 2) self.buttGroupFilter.addButton(rad, 3 if ridx == 2 else ridx) self.buttGroupFilter.button(0).setChecked(True) self.buttGroupFilter.buttonClicked.connect(self.on_filter_col) #self.comboSearchFor.addItem("Code", CG.code) #self.comboSearchFor.addItem("Description", CG.description) #self.comboSearchFor.addItem("Code + Description", CG.search) #self.comboSearchFor.setMaximumWidth(150) # clear button self.buttClear = xwidgets.ClearButton(self, callback=self.on_clear_filter) grpFilter.grid.addWidget(self.buttClear, 3, 0) ## filter text self.txtFilter = QtGui.QLineEdit() self.txtFilter.setMaximumWidth(100) grpFilter.grid.addWidget(self.txtFilter, 3, 1) self.txtFilter.textChanged.connect(self.on_txt_changed) grpFilter.grid.addWidget(QtGui.QLabel(), 4, 2) #grpFilter.layout.addStretch(3) grpFilter.grid.setColumnStretch(0, 0) grpFilter.grid.setColumnStretch(1, 10) ##================================ ## Classification Tree topLayout = QtGui.QVBoxLayout() leftLayout.addLayout(topLayout, 0) self.treeClass = QtGui.QTreeView() self.tabFilter.addTab(self.treeClass, "By classification") self.treeClass.setModel(G.ags.modelClasses) self.treeClass.setRootIsDecorated(False) self.treeClass.setExpandsOnDoubleClick(False) self.treeClass.setFixedHeight(220) self.treeClass.selectionModel().selectionChanged.connect( self.on_class_tree_selected) ##== Groups Tree self.treeGroups = QtGui.QTreeView() leftLayout.addWidget(self.treeGroups, 10) self.treeGroups.setModel(self.proxy) self.treeGroups.setUniformRowHeights(True) self.treeGroups.setRootIsDecorated(False) self.treeGroups.setAlternatingRowColors(True) self.treeGroups.header().setStretchLastSection(True) self.treeGroups.setColumnHidden(CG.search, True) self.treeGroups.setColumnWidth(CG.code, 120) self.treeGroups.setColumnWidth(CG.description, 250) self.treeGroups.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.treeGroups.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.treeGroups.setSortingEnabled(True) self.treeGroups.sortByColumn(CG.code) self.treeGroups.selectionModel().selectionChanged.connect( self.on_groups_tree_selected) self.agsGroupViewWidget = AGS4GroupViewWidget(self) self.splitter.addWidget(self.agsGroupViewWidget) self.splitter.setStretchFactor(0, 2) self.splitter.setStretchFactor(1, 5) G.settings.restore_splitter(self.splitter) self.splitter.splitterMoved.connect(self.on_splitter_moved) #self.statusBar = QtGui.QStatusBar() #self.mainLayout.addWidget(self.statusBar, 0) ############################################################################## rightWidget = QtGui.QWidget() rightLayout = xwidgets.vlayout() rightWidget.setLayout(rightLayout) self.splitter.addWidget(rightWidget) #self.agsHeadingDetailWidget = AGS4HeadingDetailWidget() #rightLayout.addWidget(self.agsHeadingDetailWidget) #self.init_setup() G.ags.sigLoaded.connect(self.on_loaded) self.txtFilter.setText("DETL")
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.debug = True self.proxy = QtGui.QSortFilterProxyModel() self.proxy.setSourceModel(G.Ags.modelGroups) self.proxy.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) ##=============================================== self.mainLayout = QtGui.QVBoxLayout() self.mainLayout.setSpacing(0) self.mainLayout.setContentsMargins(0, 0, 0, 0) self.setLayout(self.mainLayout) self.splitter = QtGui.QSplitter() self.mainLayout.addWidget(self.splitter) ############################################################################## leftWidget = QtGui.QWidget() leftLayout = xwidgets.vlayout() leftWidget.setLayout(leftLayout) self.splitter.addWidget(leftWidget) ##================================ ## Classification topLayout = QtGui.QHBoxLayout() leftLayout.addLayout(topLayout, 0) self.treeClass = QtGui.QTreeView() topLayout.addWidget(self.treeClass, 3) self.treeClass.setModel(G.Ags.modelClasses) self.treeClass.setRootIsDecorated(False) self.treeClass.setExpandsOnDoubleClick(False) self.treeClass.setFixedHeight(250) self.treeClass.selectionModel().selectionChanged.connect( self.on_class_selection) ##================================ ## Filter Widget rLay = QtGui.QVBoxLayout() topLayout.addLayout(rLay) grpFilter = xwidgets.GroupGridBox("Filter by") #mmm = 20 #grpFilter.setContentsMargins(mmm,mmm,mmm,mmm) grpFilter.grid.setSpacing(5) grpFilter.setFixedWidth(150) rLay.addWidget(grpFilter, 1) ## Buttons self.buttGrp = QtGui.QButtonGroup() self.buttGrp.setExclusive(True) self.connect(self.buttGrp, QtCore.SIGNAL("buttonClicked(int)"), self.on_filter_col) row = 0 self.buttFilterCode = QtGui.QRadioButton() grpFilter.grid.addWidget(self.buttFilterCode, row, 1) self.buttFilterCode.setText("Code") self.buttGrp.addButton(self.buttFilterCode, CG.code) row += 1 self.buttFilterDesc = QtGui.QRadioButton() grpFilter.grid.addWidget(self.buttFilterDesc, row, 1) self.buttFilterDesc.setText("Description") self.buttGrp.addButton(self.buttFilterDesc, CG.description) row += 1 self.buttFilterAll = QtGui.QRadioButton() grpFilter.grid.addWidget(self.buttFilterAll, row, 1) self.buttFilterAll.setText("Both") self.buttFilterAll.setChecked(True) self.buttGrp.addButton(self.buttFilterAll, CG.search) row += 1 self.buttClear = xwidgets.ClearButton(self, callback=self.on_clear_filter) grpFilter.grid.addWidget(self.buttClear, row, 0) self.txtCode = QtGui.QLineEdit() self.txtCode.setMaximumWidth(100) grpFilter.grid.addWidget(self.txtCode, row, 1) self.txtCode.textChanged.connect(self.on_txt_changed) grpFilter.grid.setColumnStretch(0, 0) grpFilter.grid.setColumnStretch(1, 10) rLay.addStretch(1) ##=============================================== self.tree = QtGui.QTreeView() leftLayout.addWidget(self.tree, 10) self.tree.setUniformRowHeights(True) self.tree.setRootIsDecorated(False) self.tree.setAlternatingRowColors(True) self.tree.setSortingEnabled(True) self.tree.setModel(self.proxy) self.tree.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) self.tree.header().setStretchLastSection(True) self.tree.setColumnHidden(CG.search, True) self.tree.setColumnHidden(CG.x_id, True) #self.tree.setColumnHidden(C.abbrev_id, True) self.tree.setColumnWidth(CG.code, 120) self.tree.setColumnWidth(CG.description, 250) #self.tree.setColumnWidth(CG.cls, 150) self.tree.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.tree.selectionModel().selectionChanged.connect( self.on_tree_selected) self.tree.sortByColumn(CG.code) self.agsGroupViewWidget = AGS4_GroupViewWidget(self) self.splitter.addWidget(self.agsGroupViewWidget) self.splitter.setStretchFactor(0, 2) self.splitter.setStretchFactor(1, 5) #self.statusBar = StatusBar(self, False) #self.mainLayout.addWidget(self.statusBar, 0) ############################################################################## rightWidget = QtGui.QWidget() rightLayout = xwidgets.vlayout() rightWidget.setLayout(rightLayout) self.splitter.addWidget(rightWidget) self.agsHeadingDetailWidget = AGS4_HeadingDetailWidget() rightLayout.addWidget(self.agsHeadingDetailWidget) #self.init_setup() G.Ags.sigLoaded.connect(self.on_loaded) self.agsGroupViewWidget.sigHeadCodeSelected.connect( self.agsHeadingDetailWidget.load_heading)