当前位置: 首页>>代码示例>>Python>>正文


Python QScrollArea.width方法代码示例

本文整理汇总了Python中PyQt5.QtWidgets.QScrollArea.width方法的典型用法代码示例。如果您正苦于以下问题:Python QScrollArea.width方法的具体用法?Python QScrollArea.width怎么用?Python QScrollArea.width使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PyQt5.QtWidgets.QScrollArea的用法示例。


在下文中一共展示了QScrollArea.width方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: GlyphsCanvas

# 需要导入模块: from PyQt5.QtWidgets import QScrollArea [as 别名]
# 或者: from PyQt5.QtWidgets.QScrollArea import width [as 别名]
class GlyphsCanvas(QWidget):
    def __init__(self, font, glyphs, pointSize=defaultPointSize, parent=None):
        super(GlyphsCanvas, self).__init__(parent)
        # XXX: make canvas font-agnostic as in defconAppkit and use
        # glyph.getParent() instead
        self.font = font
        self.fetchFontMetrics()
        self.glyphs = glyphs
        self.ptSize = pointSize
        self.calculateScale()
        self.padding = 10
        self._showKerning = False
        self._showMetrics = False
        self._verticalFlip = False
        self._lineHeight = 1.1
        self._positions = None
        self._selected = None
        self.doubleClickCallback = None
        self.pointSizeChangedCallback = None
        self.selectionChangedCallback = None

        self._wrapLines = True
        self._scrollArea = QScrollArea(self.parent())
        self._scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self._scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
        self._scrollArea.setWidget(self)
        self.resize(581, 400)

    def scrollArea(self):
        return self._scrollArea

    def calculateScale(self):
        scale = self.ptSize / self.upm
        if scale < 0.01:
            scale = 0.01
        self.scale = scale

    def setShowKerning(self, showKerning):
        self._showKerning = showKerning
        self.update()

    def setShowMetrics(self, showMetrics):
        self._showMetrics = showMetrics
        self.update()

    def setVerticalFlip(self, verticalFlip):
        self._verticalFlip = verticalFlip
        self.update()

    def setLineHeight(self, lineHeight):
        self._lineHeight = lineHeight
        self.update()

    def setWrapLines(self, wrapLines):
        if self._wrapLines == wrapLines:
            return
        self._wrapLines = wrapLines
        if self._wrapLines:
            sw = self._scrollArea.verticalScrollBar().width() + self._scrollArea.contentsMargins().right()
            self.resize(self.parent().parent().parent().width() - sw, self.height())
            self._scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
            self._scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
        else:
            sh = self._scrollArea.horizontalScrollBar().height() + self._scrollArea.contentsMargins().bottom()
            self.resize(self.width(), self.parent().parent().parent().height() - sh)
            self._scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
            self._scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
        self.update()

    def fetchFontMetrics(self):
        self.ascender = self.font.info.ascender
        if self.ascender is None:
            self.ascender = 750
        self.descender = self.font.info.descender
        if self.descender is None:
            self.descender = 250
        self.upm = self.font.info.unitsPerEm
        if self.upm is None or not self.upm > 0:
            self.upm = 1000

    def setGlyphs(self, newGlyphs):
        self.glyphs = newGlyphs
        self._selected = None
        self.update()

    def setPointSize(self, pointSize):
        self.ptSize = int(pointSize)
        self.calculateScale()
        self.update()

    def setSelected(self, selected):
        self._selected = selected
        if self._positions is not None:
            cur_len = 0
            line = -1
            for index, li in enumerate(self._positions):
                if cur_len + len(li) > self._selected:
                    pos, width = li[self._selected - cur_len]
                    line = index
                    break
#.........这里部分代码省略.........
开发者ID:n7s,项目名称:trufont,代码行数:103,代码来源:spaceCenter.py

示例2: EditWindow

# 需要导入模块: from PyQt5.QtWidgets import QScrollArea [as 别名]
# 或者: from PyQt5.QtWidgets.QScrollArea import width [as 别名]
class EditWindow(QWidget):
    """ Window for adding reminders.

    Useful attributes
    -----------------
    parentWindow : MainWindow object
        Parent of the window.
    taskArea : QScrollArea object
        Scroll area of window.
    rows : list of dictionaries
        Element of rows is a dictionary:
            {'date', 'text', 'edit', 'del'}.
        'date' and 'text' are QLabels,
        'edit' and 'del' are QPushButtons.
        Such dictionary represents one element from tasks list.
    grid : QGridLayout object
        Layout of objects in QScrollArea.
    activeTasks : list
        List of visible tasks in grid.
    filter : QHBoxLayout object
        Layout of filter widgets.
    (date|text)Field : QLineEdit object
        Filter widgets.

    """
    def __init__(self, parent=None):
        super().__init__()
        self.parentWindow = parent
        self.parentWindow.editActive = True
        self.activeTasks = tasks
        self.dateFieldText = ''
        self.textFieldText = ''
        self.initUI()

    def initUI(self):
        """ Init user interface. """
        # use QVBoxLayout to store two layouts vertically
        self.vl = QVBoxLayout()

        # widget for scrollArea
        self.topWidget = QWidget()
        self.grid = QGridLayout()
        self.topWidget.setLayout(self.grid)
        self.vl.addWidget(self.topWidget)

        # layout for filter
        self.filter = QHBoxLayout()
        # draw filter widgets
        self.drawFilter()
        spacer = QSpacerItem(10, 0, vPolicy=QSizePolicy.MinimumExpanding)
        self.vl.addItem(spacer)
        self.vl.addLayout(self.filter)

        self.setLayout(self.vl)
        self.rows = []

        self.taskArea = QScrollArea(self)
        self.taskArea.setWidget(self.topWidget)
        self.taskArea.setWidgetResizable(True)
        self.taskArea.resize(500, 350)
        self.resize(500, 395)
        self.setMinimumSize(460, 90)
        self.filterApply()
        self.show()
        self.move(QApplication.desktop().screen().rect().center() -
                  self.rect().center())
        self.setWindowTitle(conf.lang.EDIT_TITLE)
        iconEdit = Icon(byte=icons.edit).convertToIcon().getIcon()
        self.setWindowIcon(iconEdit)

    def drawFilter(self):
        """ Draws filter widgets. """
        clearLayout(self.filter)

        self.hideBtn = QPushButton()
        if conf.filter:
            self.hideBtn.setText(conf.lang.VISIBLE_F)
            self.hideBtn.setFixedSize(23, 23)
            self.vl.setContentsMargins(11, 11, 11, 11)
        else:
            self.hideBtn.setText(conf.lang.HIDDEN_F)
            self.hideBtn.setFixedSize(23, 15)
            self.vl.setContentsMargins(0, 0, 0, 0)
        self.hideBtn.clicked.connect(self.inverseFilter)
        self.filter.addWidget(self.hideBtn)
        if conf.filter:
            filterLbl = QLabel(conf.lang.FILTER)
            filterLbl.setStyleSheet('QLabel {' \
                                            'border-width: 0 1px 0 0;' \
                                            'border-style: solid;' \
                                            'border-color: black;' \
                                            'margin: 0 5px 0 0;' \
                                           '}')
            self.filter.addWidget(filterLbl)

            dateLbl = QLabel(conf.lang.DATE_F)
            self.filter.addWidget(dateLbl)
            self.dateField = QLineEdit()
            self.dateField.setText(self.dateFieldText)
            self.filter.addWidget(self.dateField)
#.........这里部分代码省略.........
开发者ID:illaech,项目名称:eventer,代码行数:103,代码来源:eventer.py

示例3: GridScrollArea

# 需要导入模块: from PyQt5.QtWidgets import QScrollArea [as 别名]
# 或者: from PyQt5.QtWidgets.QScrollArea import width [as 别名]
class GridScrollArea(QVBoxLayout):
    def __init__(self, parent):
        QVBoxLayout.__init__(self, parent)

        self.scroll_area = QScrollArea()

        self.grid_frame = QFrame(self.scroll_area)

        self.grid_layout = QGridLayout(self.grid_frame)

        self.scroll_area.setWidget(self.grid_frame)
        self.scroll_area.setWidgetResizable(True)
        self.scroll_area.setBackgroundRole(QPalette.Light)

        self.addWidget(self.scroll_area)

        self.current_column = 0

        self.current_row = 0

        self.initial_grid = True

        self.max_columns = 5

        self.current_width = 0

        self.child_widgets = list()

    def add_widget_by_label(self, label):
        if label != None:
            self.grid_layout.addWidget(label, self.current_row, self.current_column)

            print('Added to row: ' + str(self.current_row))
            print('Added to column: ' + str(self.current_column))

            self.grid_frame.updateGeometry()

            self.child_widgets.append(label)

            # Update the row and column indices appropriately
            self.current_column += 1

            if self.current_column == self.max_columns:
                self.current_column = 0
                self.current_row += 1

            self.print_width()

    def remove_widget_by_label(self, label):
        if label != None:
            self.grid_layout.removeWidget(label)

            label.deleteLater()

            self.grid_frame.updateGeometry()

            self.child_widgets.remove(label)

            # Update the row and column indices appropriately
            self.current_column -= 1

            if self.current_column < 0 and self.current_row > 0:
                self.current_column = self.max_columns
                self.current_row -= 1
            elif self.current_column < 0:
                self.current_column = 0

            for child in self.child_widgets:
                self.grid_layout.removeWidget(child)

            current_column = 0
            current_row = 0
            for child in self.child_widgets:
                self.grid_layout.addWidget(child, current_row, current_column)
                current_column += 1
                if current_column == self.max_columns:
                    current_column = 0
                    current_row += 1

    def print_width(self, label=None):
        print('Width of grid frame: ' + str(self.grid_frame.width()))
        #print 'Width of grid layout: ' + str(self.grid_layout.width())
        print('Width of scrolled area: ' + str(self.scroll_area.width()))
        print('Width of vbox layout: ' + str(self.scroll_area.width()))
        if label != None:
            print('Width of new label: ' + str(label.width()))
开发者ID:jhavstad,项目名称:model_runner,代码行数:88,代码来源:PyQtExtras.py


注:本文中的PyQt5.QtWidgets.QScrollArea.width方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。