class EntityLogicsView(QWidget): def __init__(self): super().__init__() self._editEntity = None self._canEditLogics = False self._logicMenu = EntityLogicMenu(self) self._rootLayout = QVBoxLayout() self._transformView = EditTransformValue() self._rootLayout.addWidget(self._transformView) self._addLogicBt = QPushButton("Add Logic") self._addLogicBt.setEnabled(False) self._addLogicBt.clicked.connect(self._signal_addLogicBt_clicked) self._rootLayout.addWidget(self._addLogicBt) self._logicsLayout = QVBoxLayout() self._frame = QFrame() self._frameLayout = QVBoxLayout() self._frameLayout.addLayout(self._logicsLayout) self._frameLayout.addStretch() self._frame.setLayout(self._frameLayout) self._frame.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self._frame.customContextMenuRequested.connect( self._signal_frame_contexMenuRequested) self._scroll = QScrollArea() self._scroll.setWidget(self._frame) self._scroll.setWidgetResizable(True) self._rootLayout.addWidget(self._scroll) self.setLayout(self._rootLayout) self.setMinimumWidth(360) RegisterForMessage(MsgSetEditEntity, self._onSetEditEntity) RegisterForMessage(MsgChangeEditEntity, self._onSetEditEntity) RegisterForMessage(MsgAddLogicToEntity, self._onAddLogicView) RegisterForMessage(MsgOnLogicDataEdited, self._onFetchDataFromNative) def _buildLogicsList(self): ClearLayout(self._logicsLayout) if self._editEntity is None: return self._editEntity.setDoNotSync(True) for logic in self._editEntity.getLogics(): logicView = LogicView(logic) logicView.setEnabled(self._canEditLogics) self._logicsLayout.addWidget(logicView) self._editEntity.setDoNotSync(False) def _onSetEditEntity(self, msg): self._editEntity = msg.entity self._canEditLogics = msg.canEditLogics if self._editEntity is not None: if self._canEditLogics: self._addLogicBt.setEnabled(True) else: self._addLogicBt.setEnabled(False) else: self._addLogicBt.setEnabled(False) self._buildLogicsList() def _onAddLogicView(self, msg): if self._editEntity != msg.entity: raise RuntimeError( "Edit entity is not target entity for a new logic") logicView = LogicView(msg.logic) self._logicsLayout.addWidget(logicView) def removeLogicView(self, entityLogicId): for i in range(self._logicsLayout.count()): item = self._logicsLayout.itemAt(i) widget = item.widget() if widget is not None: if widget._entityLogic.getNativeId() == entityLogicId: self._logicsLayout.removeWidget(widget) widget.close() return def _onFetchDataFromNative(self, msg): if self._editEntity != msg.value.getEntity(): return if not self._editEntity.shouldSyncWithNative(): return for i in range(self._logicsLayout.count()): item = self._logicsLayout.itemAt(i) widget = item.widget() widget.fetchDataFromNative() def _signal_addLogicBt_clicked(self): SendMessage(MsgOnAddLogicBtPressed(self._editEntity)) def _signal_frame_contexMenuRequested(self, pt): for i in range(self._logicsLayout.count()): widget = self._logicsLayout.itemAt(i).widget() if widget is not None: if widget.underMouse(): return globalPt = self._frame.mapToGlobal(pt) self._logicMenu.onMenuRequestedOnEntity(globalPt, self._editEntity)
def _uic(self): # First set up the properties of "self", a QWidget. self.setObjectName("EditViewWidget") sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( False) # don't care to bind height to width self.setSizePolicy(sizePolicy) self.setMinimumSize(QSize(250, 250)) self.setFocusPolicy(Qt.StrongFocus) self.setContextMenuPolicy(Qt.CustomContextMenu) self.setWindowTitle("") self.setToolTip("") self.setStatusTip("") self.setWhatsThis("") # Set up our primary widget, the editor self.Editor = PTEditor(self, self.my_book) self.Editor.setObjectName("Editor") sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(2) # Edit deserves all available space sizePolicy.setVerticalStretch(2) sizePolicy.setHeightForWidth(False) self.Editor.setSizePolicy(sizePolicy) self.Editor.setFocusPolicy(Qt.StrongFocus) self.Editor.setContextMenuPolicy(Qt.NoContextMenu) self.Editor.setAcceptDrops(True) self.Editor.setLineWidth(2) self.Editor.setDocumentTitle("") self.Editor.setLineWrapMode(QPlainTextEdit.NoWrap) # Set up the frame that will contain the bottom row of widgets # It doesn't need a parent and doesn't need to be a class member # because it will be added to a layout, which parents it. bot_frame = QFrame() sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) bot_frame.setSizePolicy(sizePolicy) bot_frame.setMinimumSize(QSize(0, 24)) bot_frame.setContextMenuPolicy(Qt.NoContextMenu) bot_frame.setFrameShape(QFrame.Panel) bot_frame.setFrameShadow(QFrame.Sunken) bot_frame.setLineWidth(3) # Set up the horizontal layout that will contain the following # objects. Its parent is the frame, which gives it a look? HBL = QHBoxLayout(bot_frame) HBL.setContentsMargins(4, 2, 4, 2) # Set up DocName, the document name widget. It is parented # to the bot_frame and positioned by the layout. self.DocName = QLabel(bot_frame) self.DocName.setText("") self.norm_style = 'color:Black;font-weight:normal;' self.mod_style = 'color:Red;font-weight:bold;' self.DocName.setStyleSheet(self.norm_style) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(2) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.DocName.setSizePolicy(sizePolicy) self.DocName.setMinimumSize(QSize(60, 12)) self.DocName.setContextMenuPolicy(Qt.NoContextMenu) self.DocName.setFrameShape(QFrame.StyledPanel) self.DocName.setObjectName("DocName") self.DocName.setToolTip( _TR("EditViewWidget", "Document filename", "tool tip")) self.DocName.setWhatsThis( _TR( "EditViewWidget", "The filename of the document being edited. It changes color when the document has been modified." )) HBL.addWidget(self.DocName) spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) HBL.addItem(spacerItem) # Set up the label "Folio:" and the Folio display label FolioLabel = QLabel(bot_frame) FolioLabel.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) FolioLabel.setText( _TR("EditViewWidget", "Folio", "label of folio display")) HBL.addWidget(FolioLabel) self.Folio = QLabel(bot_frame) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.Folio.setSizePolicy(sizePolicy) self.Folio.setMinimumSize(QSize(30, 12)) self.Folio.setContextMenuPolicy(Qt.NoContextMenu) self.Folio.setFrameShape(QFrame.StyledPanel) self.Folio.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.Folio.setObjectName("Folio display") self.Folio.setToolTip( _TR("EditViewWidget", "Folio value for current page", "tooltip")) self.Folio.setStatusTip( _TR("EditViewWidget", "Folio value for the page under the edit cursor", "statustip")) self.Folio.setWhatsThis( _TR( "EditViewWidget", "The Folio (page number) value for the page under the edit cursor. Use the Pages panel to adjust folios to agree with the printed book.", "whats this")) HBL.addWidget(self.Folio) spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) HBL.addItem(spacerItem) FolioLabel.setBuddy(self.Folio) # Set up the image filename lineedit and its buddy label. ImageFilenameLabel = QLabel(bot_frame) ImageFilenameLabel.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) ImageFilenameLabel.setText( _TR("EditViewWidget", "Image", "Image field label")) HBL.addWidget(ImageFilenameLabel) self.ImageFilename = QLineEdit(bot_frame) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.ImageFilename.setSizePolicy(sizePolicy) self.ImageFilename.setMinimumSize(QSize(30, 12)) self.ImageFilename.setMouseTracking(False) self.ImageFilename.setFocusPolicy(Qt.ClickFocus) self.ImageFilename.setContextMenuPolicy(Qt.NoContextMenu) self.ImageFilename.setAcceptDrops(True) self.ImageFilename.setInputMask("") self.ImageFilename.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.ImageFilename.setObjectName("ImageFilename") self.ImageFilename.setToolTip( _TR("EditViewWidget", "Scan image filename", "Image tooltip")) self.ImageFilename.setStatusTip( _TR("EditViewWidget", "Filename of the scan image under the edit cursor", "Image status tip")) self.ImageFilename.setWhatsThis( _TR( "EditViewWidget", "This is the name of the scanned image that produced the text under the edit cursor. This image file is displayed in the Image panel.", "Image whats this")) HBL.addWidget(self.ImageFilename) spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) HBL.addItem(spacerItem) ImageFilenameLabel.setBuddy(self.ImageFilename) # Set up the line number lineedit and its buddy label. LineNumberLabel = QLabel(bot_frame) LineNumberLabel.setText( _TR("EditViewWidget", "Line#", "Line number label")) LineNumberLabel.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) HBL.addWidget(LineNumberLabel) self.LineNumber = QLineEdit(bot_frame) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.LineNumber.setSizePolicy(sizePolicy) self.LineNumber.setMinimumSize(QSize(0, 12)) self.LineNumber.setMouseTracking(False) self.LineNumber.setFocusPolicy(Qt.ClickFocus) self.LineNumber.setContextMenuPolicy(Qt.NoContextMenu) self.LineNumber.setAcceptDrops(True) self.LineNumber.setLayoutDirection(Qt.LeftToRight) self.LineNumber.setCursorPosition(0) self.LineNumber.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.LineNumber.setPlaceholderText("") self.LineNumber.setCursorMoveStyle(Qt.LogicalMoveStyle) self.LineNumber.setObjectName("LineNumber") self.LineNumber.setToolTip( _TR("EditViewWidget", "Line number at cursor", "Line number tooltip")) self.LineNumber.setStatusTip( _TR("EditViewWidget", "Line number under cursor or top of current selection", "Line number statustip")) self.LineNumber.setWhatsThis( _TR( "EditViewWidget", "The line number in the document where the edit cursor is, or the top line of the selection. Enter a new number to jump to that line.", "Line number whatsthis")) ImageFilenameLabel.setBuddy(self.ImageFilename) HBL.addWidget(self.LineNumber) spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) HBL.addItem(spacerItem) # Set up the column number field and its buddy label. ColNumberLabel = QLabel(bot_frame) ColNumberLabel.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) ColNumberLabel.setText( _TR("EditViewWidget", "Col#", "Col number label")) HBL.addWidget(ColNumberLabel) self.ColNumber = QLabel(bot_frame) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.ColNumber.setSizePolicy(sizePolicy) self.ColNumber.setMinimumSize(QSize(30, 12)) self.ColNumber.setContextMenuPolicy(Qt.NoContextMenu) self.ColNumber.setFrameShape(QFrame.StyledPanel) self.ColNumber.setFrameShadow(QFrame.Plain) self.ColNumber.setLineWidth(1) self.ColNumber.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.ColNumber.setObjectName("ColNumber") self.ColNumber.setToolTip( _TR("EditViewWidget", "Cursor column number", "tool tip")) self.ColNumber.setStatusTip( _TR("EditViewWidget", "Cursor column number", "status tip")) self.ColNumber.setWhatsThis( _TR( "EditViewWidget", "The column number position of the cursor in the current line.", "whatsthis")) HBL.addWidget(self.ColNumber) # Set up a vertical layout and put two items in it, the editor and HBL VBL = QVBoxLayout() VBL.setContentsMargins(8, 8, 8, 8) VBL.addWidget(self.Editor) VBL.addWidget(bot_frame) self.setLayout(VBL)
class LogicViewTopBar(QWidget): def __init__(self): super().__init__() self._canCopy = True self._entityLogic = None self._frame = QFrame() self._frame.setFrameStyle(QFrame.StyledPanel) self._frame.setFrameShadow(QFrame.Plain) self._frameLayout = QHBoxLayout() self._frameLayout.setSpacing(1) self._frameLayout.setContentsMargins(0, 0, 0, 0) self._frame.setContextMenuPolicy(Qt.CustomContextMenu) self._frame.customContextMenuRequested.connect( self._signal_frame_contexMenuRequested) self._expandLogicBt = QPushButton() self._expandLogicBt.setIcon(self.style().standardIcon( QStyle.SP_TitleBarShadeButton)) self._expandLogicBt.setFlat(True) self._frameLayout.addWidget(self._expandLogicBt) self._logicNameLabel = QLabel() self._frameLayout.addWidget(self._logicNameLabel) self._frameLayout.addStretch() self._removeLogicBt = QPushButton() self._removeLogicBt.setIcon(self.style().standardIcon( QStyle.SP_TitleBarCloseButton)) self._removeLogicBt.setFlat(True) self._removeLogicBt.clicked.connect(self._signal_removeBt_clicked) self._frameLayout.addWidget(self._removeLogicBt) self._frame.setLayout(self._frameLayout) self._rootLayout = QVBoxLayout() self._rootLayout.setSpacing(0) self._rootLayout.setContentsMargins(0, 0, 0, 0) self._rootLayout.addWidget(self._frame) self.setLayout(self._rootLayout) def _setupLogic(self, entityLogic): self._entityLogic = entityLogic self._logicNameLabel.setText(self._entityLogic.getName()) def _setCanCopy(self, copyFlag): self._canCopy = copyFlag def _signal_removeBt_clicked(self): GetEventManager().onRemoveEntityLogicBtClicked(self._entityLogic) def _signal_frame_contexMenuRequested(self, pt): if not self._canCopy: return menu = EntityLogicMenu(self) globalPt = self._frame.mapToGlobal(pt) menu.onMenuRequestedOnLogic(globalPt, self._entityLogic)
def _uic(self): # First set up the properties of "self", a QWidget. self.setObjectName("EditViewWidget") sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth(False) # don't care to bind height to width self.setSizePolicy(sizePolicy) self.setMinimumSize(QSize(250, 250)) self.setFocusPolicy(Qt.StrongFocus) self.setContextMenuPolicy(Qt.CustomContextMenu) self.setWindowTitle("") self.setToolTip("") self.setStatusTip("") self.setWhatsThis("") # Set up our primary widget, the editor self.Editor = PTEditor(self,self.my_book) self.Editor.setObjectName("Editor") sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(2) # Edit deserves all available space sizePolicy.setVerticalStretch(2) sizePolicy.setHeightForWidth(False) self.Editor.setSizePolicy(sizePolicy) self.Editor.setFocusPolicy(Qt.StrongFocus) self.Editor.setContextMenuPolicy(Qt.NoContextMenu) self.Editor.setAcceptDrops(True) self.Editor.setLineWidth(2) self.Editor.setDocumentTitle("") self.Editor.setLineWrapMode(QPlainTextEdit.NoWrap) # Set up the frame that will contain the bottom row of widgets # It doesn't need a parent and doesn't need to be a class member # because it will be added to a layout, which parents it. bot_frame = QFrame() sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) bot_frame.setSizePolicy(sizePolicy) bot_frame.setMinimumSize(QSize(0, 24)) bot_frame.setContextMenuPolicy(Qt.NoContextMenu) bot_frame.setFrameShape(QFrame.Panel) bot_frame.setFrameShadow(QFrame.Sunken) bot_frame.setLineWidth(3) # Set up the horizontal layout that will contain the following # objects. Its parent is the frame, which gives it a look? HBL = QHBoxLayout(bot_frame) HBL.setContentsMargins(4,2,4,2) # Set up DocName, the document name widget. It is parented # to the bot_frame and positioned by the layout. self.DocName = QLabel(bot_frame) self.DocName.setText("") sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(2) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.DocName.setSizePolicy(sizePolicy) self.DocName.setMinimumSize(QSize(60, 12)) self.DocName.setContextMenuPolicy(Qt.NoContextMenu) self.DocName.setFrameShape(QFrame.StyledPanel) self.DocName.setObjectName("DocName") self.DocName.setToolTip(_TR("EditViewWidget", "Document filename", "tool tip")) self.DocName.setWhatsThis(_TR("EditViewWidget", "The filename of the document being edited. It changes color when the document has been modified.")) HBL.addWidget(self.DocName) spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) HBL.addItem(spacerItem) # Set up the label "Folio:" and the Folio display label FolioLabel = QLabel(bot_frame) FolioLabel.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) FolioLabel.setText(_TR("EditViewWidget", "Folio", "label of folio display")) HBL.addWidget(FolioLabel) self.Folio = QLabel(bot_frame) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.Folio.setSizePolicy(sizePolicy) self.Folio.setMinimumSize(QSize(30, 12)) self.Folio.setContextMenuPolicy(Qt.NoContextMenu) self.Folio.setFrameShape(QFrame.StyledPanel) self.Folio.setAlignment( Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter ) self.Folio.setObjectName("Folio display") self.Folio.setToolTip(_TR("EditViewWidget", "Folio value for current page", "tooltip")) self.Folio.setStatusTip(_TR("EditViewWidget", "Folio value for the page under the edit cursor", "statustip")) self.Folio.setWhatsThis(_TR("EditViewWidget", "The Folio (page number) value for the page under the edit cursor. Use the Pages panel to adjust folios to agree with the printed book.","whats this")) HBL.addWidget(self.Folio) spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) HBL.addItem(spacerItem) FolioLabel.setBuddy(self.Folio) # Set up the image filename lineedit and its buddy label. ImageFilenameLabel = QLabel(bot_frame) ImageFilenameLabel.setAlignment( Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter ) ImageFilenameLabel.setText(_TR("EditViewWidget", "Image", "Image field label")) HBL.addWidget(ImageFilenameLabel) self.ImageFilename = QLineEdit(bot_frame) sizePolicy = QSizePolicy( QSizePolicy.Expanding, QSizePolicy.Fixed ) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.ImageFilename.setSizePolicy(sizePolicy) self.ImageFilename.setMinimumSize(QSize(30, 12)) self.ImageFilename.setMouseTracking(False) self.ImageFilename.setFocusPolicy(Qt.ClickFocus) self.ImageFilename.setContextMenuPolicy(Qt.NoContextMenu) self.ImageFilename.setAcceptDrops(True) self.ImageFilename.setInputMask("") self.ImageFilename.setAlignment( Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter ) self.ImageFilename.setObjectName("ImageFilename") self.ImageFilename.setToolTip(_TR("EditViewWidget", "Scan image filename", "Image tooltip")) self.ImageFilename.setStatusTip(_TR("EditViewWidget", "Filename of the scan image under the edit cursor", "Image status tip")) self.ImageFilename.setWhatsThis(_TR("EditViewWidget", "This is the name of the scanned image that produced the text under the edit cursor. This image file is displayed in the Image panel.","Image whats this")) HBL.addWidget(self.ImageFilename) spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) HBL.addItem(spacerItem) ImageFilenameLabel.setBuddy(self.ImageFilename) # Set up the line number lineedit and its buddy label. LineNumberLabel = QLabel(bot_frame) LineNumberLabel.setText(_TR("EditViewWidget", "Line#", "Line number label")) LineNumberLabel.setAlignment( Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter ) HBL.addWidget(LineNumberLabel) self.LineNumber = QLineEdit(bot_frame) sizePolicy = QSizePolicy( QSizePolicy.Expanding, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.LineNumber.setSizePolicy(sizePolicy) self.LineNumber.setMinimumSize(QSize(0, 12)) self.LineNumber.setMouseTracking(False) self.LineNumber.setFocusPolicy(Qt.ClickFocus) self.LineNumber.setContextMenuPolicy(Qt.NoContextMenu) self.LineNumber.setAcceptDrops(True) self.LineNumber.setLayoutDirection(Qt.LeftToRight) self.LineNumber.setCursorPosition(0) self.LineNumber.setAlignment( Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter ) self.LineNumber.setPlaceholderText("") self.LineNumber.setCursorMoveStyle(Qt.LogicalMoveStyle) self.LineNumber.setObjectName("LineNumber") self.LineNumber.setToolTip(_TR("EditViewWidget", "Line number at cursor", "Line number tooltip")) self.LineNumber.setStatusTip(_TR("EditViewWidget", "Line number under cursor or top of current selection","Line number statustip")) self.LineNumber.setWhatsThis(_TR("EditViewWidget", "The line number in the document where the edit cursor is, or the top line of the selection. Enter a new number to jump to that line.","Line number whatsthis")) ImageFilenameLabel.setBuddy(self.ImageFilename) HBL.addWidget(self.LineNumber) spacerItem = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) HBL.addItem(spacerItem) # Set up the column number field and its buddy label. ColNumberLabel = QLabel(bot_frame) ColNumberLabel.setAlignment( Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter ) ColNumberLabel.setText(_TR("EditViewWidget", "Col#", "Col number label")) HBL.addWidget(ColNumberLabel) self.ColNumber = QLabel(bot_frame) sizePolicy = QSizePolicy( QSizePolicy.Expanding, QSizePolicy.Preferred ) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(False) self.ColNumber.setSizePolicy(sizePolicy) self.ColNumber.setMinimumSize(QSize(30, 12)) self.ColNumber.setContextMenuPolicy(Qt.NoContextMenu) self.ColNumber.setFrameShape(QFrame.StyledPanel) self.ColNumber.setFrameShadow(QFrame.Plain) self.ColNumber.setLineWidth(1) self.ColNumber.setAlignment( Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter ) self.ColNumber.setObjectName("ColNumber") self.ColNumber.setToolTip(_TR("EditViewWidget", "Cursor column number", "tool tip")) self.ColNumber.setStatusTip(_TR("EditViewWidget", "Cursor column number", "status tip")) self.ColNumber.setWhatsThis(_TR("EditViewWidget", "The column number position of the cursor in the current line.","whatsthis")) HBL.addWidget(self.ColNumber) # Set up a vertical layout and put two items in it, the editor and HBL VBL = QVBoxLayout() VBL.setContentsMargins(8, 8, 8, 8) VBL.addWidget(self.Editor) VBL.addWidget(bot_frame) self.setLayout(VBL) # end of _uic