本文整理汇总了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
#.........这里部分代码省略.........
示例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)
#.........这里部分代码省略.........
示例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()))