Python源码示例:PyQt5.QtCore.Qt.ScrollBarAlwaysOff()
示例1
def __init__(self, parent=None, frame=QtWidgets.QFrame.Box):
super(FIRSTUI.ScrollWidget, self).__init__()
# Container Widget
widget = QtWidgets.QWidget()
# Layout of Container Widget
self.layout = QtWidgets.QVBoxLayout(self)
self.layout.setContentsMargins(0, 0, 0, 0)
widget.setLayout(self.layout)
# Scroll Area Properties
scroll = QtWidgets.QScrollArea()
scroll.setFrameShape(frame)
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
scroll.setWidgetResizable(True)
scroll.setWidget(widget)
# Scroll Area Layer add
scroll_layout = QtWidgets.QVBoxLayout(self)
scroll_layout.addWidget(scroll)
scroll_layout.setContentsMargins(0, 0, 0, 0)
self.setLayout(scroll_layout)
示例2
def __init__(self, model, parent=None):
super().__init__(parent)
if not utils.is_mac:
self.setStyle(QStyleFactory.create('Fusion'))
stylesheet.set_register(self)
self.setResizeMode(QListView.Adjust)
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed)
self.setFocusPolicy(Qt.NoFocus)
self.setFlow(QListView.LeftToRight)
self.setSpacing(1)
self._menu = None
model.rowsInserted.connect(functools.partial(update_geometry, self))
model.rowsRemoved.connect(functools.partial(update_geometry, self))
model.dataChanged.connect(functools.partial(update_geometry, self))
self.setModel(model)
self.setWrapping(True)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.show_context_menu)
self.clicked.connect(self.on_clicked)
示例3
def __init__(self, running_model, **kwargs):
super().__init__(**kwargs)
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setFocusPolicy(Qt.NoFocus)
self.setSelectionMode(self.NoSelection)
self._running_cues = {}
self._running_model = running_model
self._running_model.item_added.connect(
self._item_added, Connection.QtQueued)
self._running_model.item_removed.connect(
self._item_removed, Connection.QtQueued)
self._running_model.model_reset.connect(
self._model_reset, Connection.QtQueued)
self.__dbmeter_visible = False
self.__seek_visible = False
self.__accurate_time = False
示例4
def __init__(self, widget: QWidget, minHeight: int, theme: str, parent):
super(StreamSelectorScrollArea, self).__init__(parent)
if sys.platform in {'win32', 'darwin'}:
self.setStyle(QStyleFactory.create('Fusion'))
# noinspection PyUnresolvedReferences
if parent.parent.parent.stylename == 'fusion' or sys.platform in {'win32', 'darwin'}:
self.setStyleSheet('''
QScrollArea {{
background-color: transparent;
margin-bottom: 10px;
border: none;
border-right: 1px solid {};
}}'''.format('#4D5355' if theme == 'dark' else '#C0C2C3'))
else:
self.setStyleSheet('''
QScrollArea {{
background-color: transparent;
margin-bottom: 10px;
border: none;
}}''')
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setFrameShape(QFrame.NoFrame)
self.setMinimumHeight(minHeight)
if widget is not None:
self.setWidget(widget)
示例5
def __init__(self, parent=None):
super(VideoList, self).__init__(parent)
self.parent = parent
self.theme = self.parent.theme
self._progressbars = []
self.setMouseTracking(True)
self.setDropIndicatorShown(True)
self.setFixedWidth(190)
self.setAttribute(Qt.WA_MacShowFocusRect, False)
self.setContentsMargins(0, 0, 0, 0)
self.setItemDelegate(VideoItem(self))
self.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding)
self.setUniformItemSizes(True)
self.setDragEnabled(True)
self.setDragDropMode(QAbstractItemView.InternalMove)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.setAlternatingRowColors(True)
self.setVerticalScrollMode(QAbstractItemView.ScrollPerPixel)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setObjectName('cliplist')
self.setStyleSheet('QListView::item { border: none; }')
self.opacityEffect = OpacityEffect(0.3)
self.opacityEffect.setEnabled(False)
self.setGraphicsEffect(self.opacityEffect)
示例6
def __init__(self, app, parent=None):
super().__init__(parent=parent)
self._app = app
self.setWidgetResizable(True)
self.setFrameShape(QFrame.NoFrame)
self.t = TableContainer(app, self)
self.setWidget(self.t)
self.verticalScrollBar().valueChanged.connect(self.on_v_scrollbar_value_changed)
# As far as I know, KDE and GNOME can't auto hide the scrollbar,
# and they show an old-fation vertical scrollbar.
# HELP: implement an auto-hide scrollbar for Linux
if sys.platform.lower() != 'darwin':
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
示例7
def __init__(self, colors, *args, **kwargs):
super(CColorItems, self).__init__(*args, **kwargs)
self.setItemDelegate(StyledItemDelegate(self))
self.setEditTriggers(self.NoEditTriggers)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setFlow(self.LeftToRight)
self.setWrapping(True)
self.setResizeMode(self.Adjust)
self.setSpacing(6)
self.setCursor(Qt.PointingHandCursor)
self.setFrameShape(self.NoFrame)
self._model = QStandardItemModel(self)
self.setModel(self._model)
for color in colors:
self.addColor(color)
示例8
def __init__(self, *args, **kwargs):
super(Window, self).__init__(*args, **kwargs)
layout = QVBoxLayout(self)
self.listWidget = QListWidget(self)
self.listWidget.setSpacing(2) # item直接的间隔
# 隐藏横向滚动条
self.listWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# 让list 从左到右排列
self.listWidget.setFlow(self.listWidget.LeftToRight)
# 自动换行
self.listWidget.setWrapping(True)
self.listWidget.setResizeMode(self.listWidget.Adjust)
self.buttonMsg = QPushButton('弹出提示框', self, clicked=self.showMessage)
self.buttonDown = QPushButton('下载图片', self, clicked=self.doDownload)
layout.addWidget(self.listWidget)
layout.addWidget(self.buttonMsg)
layout.addWidget(self.buttonDown)
self.currentPage = 0
self.initSession() # 其实没必要,session主要用在需要登录的网站。缓存cookie用
示例9
def __init__(self, *args, **kwargs):
super(NotificationWindow, self).__init__(*args, **kwargs)
self.setSpacing(20)
self.setMinimumWidth(412)
self.setMaximumWidth(412)
QApplication.instance().setQuitOnLastWindowClosed(True)
# 隐藏任务栏,无边框,置顶等
self.setWindowFlags(self.windowFlags() | Qt.Tool |
Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
# 去掉窗口边框
self.setFrameShape(self.NoFrame)
# 背景透明
self.viewport().setAutoFillBackground(False)
self.setAttribute(Qt.WA_TranslucentBackground, True)
# 不显示滚动条
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# 获取屏幕高宽
rect = QApplication.instance().desktop().availableGeometry(self)
self.setMinimumHeight(rect.height())
self.setMaximumHeight(rect.height())
self.move(rect.width() - self.minimumWidth() - 18, 0)
示例10
def __init__(self, main_wnd, message):
QDialog.__init__(self, parent=main_wnd)
self.setWindowTitle("Confirm Votes")
scroll = QScrollArea()
scroll.setMinimumHeight(280)
scroll.setMaximumHeight(280)
scroll.setMinimumWidth(500)
scroll.setWidget(QLabel(message))
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
lay = QVBoxLayout()
lay.addWidget(scroll)
row = QHBoxLayout()
self.yes_btn = QPushButton("Yes")
self.no_btn = QPushButton("No")
self.yes_btn.clicked.connect(lambda: self.accept())
self.no_btn.clicked.connect(lambda: self.reject())
row.addWidget(self.yes_btn)
row.addWidget(self.no_btn)
lay.addLayout(row)
self.setLayout(lay)
示例11
def __init__(self, *args, **kwargs):
super(TableView, self).__init__(*args, **kwargs)
self.setAlternatingRowColors(True)
self.horizontalHeader().setHighlightSections(False)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.verticalHeader().setVisible(False)
self.verticalHeader().setHighlightSections(False)
# self.verticalHeader().setDefaultSectionSize(24)
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
self.setSelectionBehavior(QTableView.SelectRows)
self.setSelectionMode(QTableView.SingleSelection)
self.setEditTriggers(self.NoEditTriggers)
示例12
def __init__(self, *,
cmd: 'command.Command',
win_id: int,
parent: QWidget = None) -> None:
super().__init__(parent)
self.pattern = None # type: typing.Optional[str]
self._win_id = win_id
self._cmd = cmd
self._active = False
config.instance.changed.connect(self._on_config_changed)
self._delegate = completiondelegate.CompletionItemDelegate(self)
self.setItemDelegate(self._delegate)
self.setStyle(QStyleFactory.create('Fusion'))
stylesheet.set_register(self)
self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
self.setHeaderHidden(True)
self.setAlternatingRowColors(True)
self.setIndentation(0)
self.setItemsExpandable(False)
self.setExpandsOnDoubleClick(False)
self.setAnimated(False)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# WORKAROUND
# This is a workaround for weird race conditions with invalid
# item indexes leading to segfaults in Qt.
#
# Some background: http://bugs.quassel-irc.org/issues/663
# The proposed fix there was later reverted because it didn't help.
self.setUniformRowHeights(True)
self.hide()
# FIXME set elidemode
# https://github.com/qutebrowser/qutebrowser/issues/118
示例13
def setNonScroll(self):
# Only scrollable for horizontal axis.
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
self.setMaximumSize(self._getQTableWidgetSize())
self.setMinimumHeight(self._getQTableWidgetHeight())
示例14
def __init__(self, parent=None, title="', params=None):
super().__init__(parent)
self.params = params
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.lbl_img_list = []
self.pixmap_list = []
self.H1_HEIGHT = 50
self.H2_HEIGHT = 50
self.SIDE_MARGIN = 5
self.H1_FONT_SIZE = 18
self.H2_FONT_SIZE = 18
self.H3_FONT_SIZE = 16
self.TEXT_FONT_SIZE = 14
self.inner = QWidget(self)
self.vbox = QVBoxLayout(self.inner)
self.vbox.setSpacing(10)
self.vbox.setContentsMargins(0, 0, 0, 0)
topframe = QFrame()
topframe.setStyleSheet("background-color: white')
topframe.setFixedHeight(self.H1_HEIGHT)
self.title = title
lbl_h1 = QLabel(title, topframe)
fnt = lbl_h1.font()
fnt.setPointSize(self.H1_FONT_SIZE)
lbl_h1.setFont(fnt)
lbl_h1.setFixedHeight(self.H1_HEIGHT)
lbl_h1.setMargin(self.SIDE_MARGIN)
self.vbox.addWidget(topframe)
self.inner.setLayout(self.vbox)
self.setWidget(self.inner)
示例15
def setup_coat_of_arms_view(self):
size = QSize(90, 120)
self.battleView.draw_coat_of_arms(self.graphicsView_coatOfArm.scene(), size)
self.graphicsView_coatOfArm.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
size_policy = constants.default_size_policy(self.graphicsView_coatOfArm, QSizePolicy.Fixed, QSizePolicy.Fixed)
self.graphicsView_coatOfArm.setSizePolicy(size_policy)
self.graphicsView_coatOfArm.setMinimumSize(size)
self.graphicsView_coatOfArm.setMaximumSize(size)
self.graphicsView_coatOfArm.setStyleSheet("border-style: none;background: transparent")
self.graphicsView_coatOfArm.setCacheMode(QGraphicsView.CacheBackground)
self.gridLayout.addWidget(self.graphicsView_coatOfArm, 3, 1, 1, 1)
# unit views
示例16
def __init__(self, parent=None):
super(Changelog, self).__init__(parent, Qt.Dialog | Qt.WindowCloseButtonHint)
self.parent = parent
self.setWindowTitle('{} changelog'.format(qApp.applicationName()))
changelog = QFile(':/CHANGELOG')
changelog.open(QFile.ReadOnly | QFile.Text)
content = QTextStream(changelog).readAll()
label = QLabel(content, self)
label.setWordWrap(True)
label.setTextFormat(Qt.PlainText)
buttons = QDialogButtonBox(QDialogButtonBox.Close, self)
buttons.rejected.connect(self.close)
scrollarea = QScrollArea(self)
scrollarea.setStyleSheet('QScrollArea { background:transparent; }')
scrollarea.setWidgetResizable(True)
scrollarea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
scrollarea.setFrameShape(QScrollArea.NoFrame)
scrollarea.setWidget(label)
if sys.platform in {'win32', 'darwin'}:
scrollarea.setStyle(QStyleFactory.create('Fusion'))
# noinspection PyUnresolvedReferences
if parent.parent.stylename == 'fusion' or sys.platform in {'win32', 'darwin'}:
self.setStyleSheet('''
QScrollArea {{
background-color: transparent;
margin-bottom: 10px;
border: none;
border-right: 1px solid {};
}}'''.format('#4D5355' if parent.theme == 'dark' else '#C0C2C3'))
else:
self.setStyleSheet('''
QScrollArea {{
background-color: transparent;
margin-bottom: 10px;
border: none;
}}''')
layout = QVBoxLayout()
layout.addWidget(scrollarea)
layout.addWidget(buttons)
self.setLayout(layout)
self.setMinimumSize(self.sizeHint())
示例17
def __init__(self, service: VideoService, parent: QWidget, flags=Qt.WindowCloseButtonHint):
super(SettingsDialog, self).__init__(parent.parentWidget(), flags)
self.parent = parent
self.service = service
self.settings = self.parent.settings
self.theme = self.parent.theme
self.setObjectName('settingsdialog')
if sys.platform in {'win32', 'darwin'}:
self.setStyle(QStyleFactory.create('Fusion'))
self.setWindowTitle('Settings')
self.categories = QListWidget(self)
self.categories.setResizeMode(QListView.Fixed)
self.categories.setStyleSheet('QListView::item { text-decoration: none; }')
self.categories.setAttribute(Qt.WA_MacShowFocusRect, False)
self.categories.setObjectName('settingsmenu')
self.categories.setUniformItemSizes(True)
self.categories.setMouseTracking(True)
self.categories.setViewMode(QListView.IconMode)
self.categories.setIconSize(QSize(90, 60))
self.categories.setMovement(QListView.Static)
self.categories.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.pages = QStackedWidget(self)
self.pages.addWidget(GeneralPage(self))
self.pages.addWidget(VideoPage(self))
self.pages.addWidget(ThemePage(self))
self.pages.addWidget(ToolsPage(self))
self.pages.addWidget(LogsPage(self))
self.initCategories()
horizontalLayout = QHBoxLayout()
horizontalLayout.setSpacing(5)
horizontalLayout.addWidget(self.categories)
horizontalLayout.addWidget(self.pages, 1)
buttons = QDialogButtonBox(QDialogButtonBox.Ok, self)
buttons.accepted.connect(self.close)
mainLayout = QVBoxLayout()
mainLayout.addLayout(horizontalLayout)
mainLayout.addWidget(buttons)
self.setLayout(mainLayout)
示例18
def __init__(self, app, parent=None):
super().__init__(parent)
self._app = app
self.setWidgetResizable(True)
self.setFrameShape(QFrame.NoFrame)
self.p = _LeftPanel(app, self)
self.setWidget(self.p)
if sys.platform.lower() != 'darwin':
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
示例19
def __init__(self):
QGraphicsView.__init__(self)
# Image is displayed as a QPixmap in a QGraphicsScene attached to this QGraphicsView.
self.scene = QGraphicsScene()
self.setScene(self.scene)
# Store a local handle to the scene's current image pixmap.
self._pixmapHandle = None
# Image aspect ratio mode.
# !!! ONLY applies to full image. Aspect ratio is always ignored when zooming.
# Qt.IgnoreAspectRatio: Scale image to fit viewport.
# Qt.KeepAspectRatio: Scale image to fit inside viewport, preserving aspect ratio.
# Qt.KeepAspectRatioByExpanding: Scale image to fill the viewport, preserving aspect ratio.
self.aspectRatioMode = Qt.KeepAspectRatio
# Scroll bar behaviour.
# Qt.ScrollBarAlwaysOff: Never shows a scroll bar.
# Qt.ScrollBarAlwaysOn: Always shows a scroll bar.
# Qt.ScrollBarAsNeeded: Shows a scroll bar only when zoomed.
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
self.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
# Stack of QRectF zoom boxes in scene coordinates.
self.zoomStack = []
# Flags for enabling/disabling mouse interaction.
self.canZoom = True
self.canPan = True
示例20
def __init__(self, profile: dict, parent=None):
"""
Data table:
All data is in column 0.
--
0 - Visual name.
32 - main data entry, name of parents, full data for children
33 - 0 for parent, 1 for children, 3 for custom option.
34 - Name of item that needs to be checked
35 - index for children used for active option
37 - List of QModelIndex to items that this depends on.
"""
super().__init__(parent=parent)
self.favorite = False
self.setExpandsOnDoubleClick(False)
# self.setHeaderHidden(True)
self.setRootIsDecorated(False)
self.setHeaderHidden(True)
# self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.contextMenu)
# self.header().setSectionResizeMode(0,QHeaderView.ResizeToContents)
# self.headerItem().setResizeMode(QHeaderView.ResizeToContents)
# self.setItemWidget()
if isinstance(profile, dict):
self.load_profile(profile)
else:
raise TypeError(f'Expected dict, not type {type(profile)}')
self.setSortingEnabled(True)
self.sortByColumn(0, Qt.AscendingOrder)
self.itemChanged.connect(self.make_exclusive)
self.itemChanged.connect(self.check_dependency)
示例21
def __init__(self):
super(AMANDisplay, self).__init__()
self.setGeometry(0, 0, 500, 600)
self.setStyleSheet('background-color:#233370')
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.scene = QGraphicsScene(0, 0, 500, 600)
# Timeline boundaries
pen = QPen(QColor('white'))
brush = QBrush(QColor('#233370'))
self.scene.addLine(220, 0, 220, 600, pen)
self.scene.addLine(280, 0, 280, 600, pen)
self.scene.addLine(0, 30, 500, 30, pen)
timelinebox = self.scene.addRect(220, 30, 60, 540, pen, brush)
timelinebox.setFlag(timelinebox.ItemClipsChildrenToShape, True)
# Timeline scale
self.timeline = QGraphicsItemGroup()
self.timeline.setParentItem(timelinebox)
self.timeticks = []
for i in range(40):
y = 15 * i
w = 6
if i % 5 == 0:
w = 10
self.timeticks.append(self.scene.addText('%02d' % (40 - i), QFont('Courier', 10)))
self.timeticks[-1].setPos(240, y - 10)
self.timeticks[-1].setDefaultTextColor(QColor('white'))
self.timeline.addToGroup(self.timeticks[-1])
self.timeline.addToGroup(self.scene.addLine(220, y, 220 + w, y, pen))
self.timeline.addToGroup(self.scene.addLine(280 - w, y, 280, y, pen))
self.lrwy = self.scene.addText('18R', QFont('Arial', 20, 50))
self.lrwy.setPos(1, 1)
self.lrwy.setDefaultTextColor(QColor('white'))
# Finalize
self.setScene(self.scene)
self.show()
示例22
def __init__(self, parent=None):
super().__init__(parent)
self.setMaximumHeight(21)
self.setFocusPolicy(Qt.StrongFocus)
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
示例23
def __init__(self, parent=None, setup_list_cb=None, setup_list_cb_args=None,
double_click_to_accept=False, checkable=False):
super(ListDialog, self).__init__(parent)
self.right_click_handler = None
layout = QVBoxLayout(self)
self.list = DwarfListView() # QListWidget()
self.list.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
if double_click_to_accept:
self.list.doubleClicked.connect(self.accept)
if setup_list_cb is not None:
setup_list_cb(self.list, setup_list_cb_args)
layout.addWidget(self.list)
if checkable:
buttons = QHBoxLayout()
select_all = QPushButton('select all')
select_all.clicked.connect(self.select_all)
buttons.addWidget(select_all)
unselect_all = QPushButton('unselect all')
unselect_all.clicked.connect(self.unselect_all)
buttons.addWidget(unselect_all)
ok = QPushButton('ok')
ok.clicked.connect(self.accept)
buttons.addWidget(ok)
cancel = QPushButton('cancel')
cancel.clicked.connect(self.close)
buttons.addWidget(cancel)
layout.addLayout(buttons)
示例24
def __init__(self, callback, *__args):
super().__init__(*__args)
self.callback = callback
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.itemDoubleClicked.connect(self._callback)
示例25
def initUi(self):
# 初始化界面
# 通过QListWidget的当前item变化来切换QStackedWidget中的序号
self.listWidget.currentRowChanged.connect(
self.stackedWidget.setCurrentIndex)
# 去掉边框
self.listWidget.setFrameShape(QListWidget.NoFrame)
# 隐藏滚动条
self.listWidget.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.listWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# 这里就用一般的文本配合图标模式了(也可以直接用Icon模式,setViewMode)
for i in range(20):
item = QListWidgetItem(
QIcon('Data/0%d.ico' % randint(1, 8)), str('选 项 %s' % i), self.listWidget)
# 设置item的默认宽高(这里只有高度比较有用)
item.setSizeHint(QSize(16777215, 60))
# 文字居中
item.setTextAlignment(Qt.AlignCenter)
# 再模拟20个右侧的页面(就不和上面一起循环放了)
for i in range(20):
label = QLabel('我是页面 %d' % i, self)
label.setAlignment(Qt.AlignCenter)
# 设置label的背景颜色(这里随机)
# 这里加了一个margin边距(方便区分QStackedWidget和QLabel的颜色)
label.setStyleSheet('background: rgb(%d, %d, %d);margin: 50px;' % (
randint(0, 255), randint(0, 255), randint(0, 255)))
self.stackedWidget.addWidget(label)
# 美化样式表
示例26
def __init__(self, *args, **kwargs):
super(Window, self).__init__(*args, **kwargs)
self.setAttribute(Qt.WA_TranslucentBackground, True) # 设置父控件Widget背景透明
self.setWindowFlags(Qt.FramelessWindowHint) # 去掉边框
palette = self.palette()
palette.setBrush(QPalette.Base, Qt.transparent) # 父控件背景透明
self.setPalette(palette)
layout = QVBoxLayout(self)
layout.setContentsMargins(0, 0, 0, 0)
# QWebSettings.globalSettings().setAttribute(
# QWebSettings.DeveloperExtrasEnabled, True)# web开发者工具
self.webView = QWebView(self) # 网页控件
layout.addWidget(self.webView)
self.webView.setContextMenuPolicy(Qt.NoContextMenu) # 去掉右键菜单
self.mainFrame = self.webView.page().mainFrame()
self.mainFrame.setScrollBarPolicy(
Qt.Vertical, Qt.ScrollBarAlwaysOff) # 去掉滑动条
self.mainFrame.setScrollBarPolicy(Qt.Horizontal, Qt.ScrollBarAlwaysOff)
# 最大化
rect = app.desktop().availableGeometry()
self.resize(rect.size())
self.webView.resize(rect.size())
示例27
def __init__(self, *args, **kwargs):
super(DragListWidget, self).__init__(*args, **kwargs)
self.resize(400, 400)
# 隐藏横向滚动条
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# 不能编辑
self.setEditTriggers(self.NoEditTriggers)
# 开启拖功能
self.setDragEnabled(True)
# 只能往外拖
self.setDragDropMode(self.DragOnly)
# 忽略放
self.setDefaultDropAction(Qt.IgnoreAction)
# ****重要的一句(作用是可以单选,多选。Ctrl、Shift多选,可从空白位置框选)****
# ****不能用ExtendedSelection,因为它可以在选中item后继续框选会和拖拽冲突****
self.setSelectionMode(self.ContiguousSelection)
# 设置从左到右、自动换行、依次排列
self.setFlow(self.LeftToRight)
self.setWrapping(True)
self.setResizeMode(self.Adjust)
# item的间隔
self.setSpacing(5)
# 橡皮筋(用于框选效果)
self._rubberPos = None
self._rubberBand = QRubberBand(QRubberBand.Rectangle, self)
self.initItems()
# 实现拖拽的时候预览效果图
# 这里演示拼接所有的item截图(也可以自己写算法实现堆叠效果)
示例28
def scroll(self, item):
if isinstance(item, list):
item = item if len(item) > 0 else ""
scroll = QScrollArea()
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
scroll.setMaximumHeight(50)
scroll.setFrameShape(QFrame.NoFrame)
scroll.setBackgroundRole(3)
label = QLabel(str(item))
label.setContentsMargins(5, 5, 5, 5)
scroll.setWidget(label)
return scroll
示例29
def __init__(self, gateway, deduplicate=True, max_items=30):
super(HistoryListWidget, self).__init__()
self.gateway = gateway
self.deduplicate = deduplicate
self.max_items = max_items
palette = self.palette()
self.base_color = palette.base().color()
self.highlighted_color = BlendedColor(
self.base_color, palette.highlight().color(), 0.88
) # Was #E6F1F7
self.highlighted = None
self.action_icon = QIcon(resource("dots-horizontal-triple.png"))
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.setFocusPolicy(Qt.NoFocus)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
# self.setSelectionMode(QAbstractItemView.ExtendedSelection)
self.setSelectionMode(QAbstractItemView.NoSelection)
# self.setStyleSheet("QListWidget::item:hover { background: #E6F1F7 }")
self.setVerticalScrollMode(QAbstractItemView.ScrollPerPixel)
self.sb = self.verticalScrollBar()
self.sb.valueChanged.connect(self.update_visible_widgets)
self.itemDoubleClicked.connect(self.on_double_click)
self.customContextMenuRequested.connect(self.on_right_click)
self.gateway.monitor.file_updated.connect(self.add_item)
self.gateway.monitor.check_finished.connect(
self.update_visible_widgets
)
示例30
def __init__(self, parent):
qw.QScrollArea.__init__(self, parent)
self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
self.horizontalScrollBar().setEnabled(False)
# If removed, you will get unused space to the right and bottom.
self.setWidgetResizable(True)
# Only allow expanding, not shrinking.
self.setSizePolicy(qsp(qsp.Minimum, qsp.Minimum))