Closed marrylin2019 closed 1 year ago
可以贴一下最小复现代码吗
from PyQt6.QtWidgets import QWidget
from qfluentwidgets import ScrollArea, ExpandLayout, SettingCardGroup, PrimaryPushSettingCard, FluentIcon, \
PrimaryPushButton, InfoBar, InfoBarPosition
class TestInterface(ScrollArea):
def __init__(self, parent=None):
super().__init__(parent)
self.scrollWidget = QWidget()
self.expandLayout = ExpandLayout(self.scrollWidget)
self.__initUI()
def __initUI(self):
self.runGroup = SettingCardGroup(
'执行', self
)
self.runCard = PrimaryPushSettingCard(
'开始训练',
FluentIcon.FOLDER,
'模型训练',
'请保证输入信息完整',
self.runGroup
)
self._initWidget()
def _initWidget(self):
self.resize(1000, 800)
self.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
self.setViewportMargins(0, 80, 0, 20)
self.setWidget(self.scrollWidget)
self.setWidgetResizable(True)
# initialize style sheet
self._setQss()
# initialize layout
self._initLayout()
def _initLayout(self):
self.runGroup.addSettingCard(self.runCard)
self.btn = PrimaryPushButton('Test')
self.runCard.clicked.connect(
lambda: InfoBar.error(
title='异常信息',
content=str(
'1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111'),
orient=Qt.Orientation.Horizontal,
isClosable=True,
position=InfoBarPosition.BOTTOM_RIGHT,
duration=2000,
parent=self
)
)
# add setting card group to layout
self.expandLayout.setSpacing(28)
self.expandLayout.setContentsMargins(36, 10, 36, 0)
self.expandLayout.addWidget(self.runGroup)
def _setQss(self):
""" set style sheet """
self.scrollWidget.setObjectName('scrollWidget')
self.setStyleSheet("""
SettingInterface, #scrollWidget {
background-color: transparent;
}
QScrollArea {
background-color: transparent;
border: none;
}
/* 标签 */
QLabel#settingLabel {
font: 33px 'Microsoft YaHei Light';
background-color: transparent;
}
/* 滚动条 */
QScrollBar {
background: transparent;
width: 4px;
margin-top: 32px;
margin-bottom: 0;
padding-right: 2px;
}
/*隐藏上箭头*/
QScrollBar::sub-line {
background: transparent;
}
/*隐藏下箭头*/
QScrollBar::add-line {
background: transparent;
}
QScrollBar::handle {
background: rgb(122, 122, 122);
border: 2px solid rgb(128, 128, 128);
border-radius: 1px;
min-height: 32px;
}
QScrollBar::add-page:vertical,
QScrollBar::sub-page:vertical {
background: none;
}
""")
在您的navigation demo中添加TestInterface这个页面即可复现。如果不行,我可以把mainwindow_interface.py文件内容粘贴。
可以贴一下最小复现代码吗
昨晚我也发现了,忘记提了,我是改成垂直布局显示才正常,当是水平布局如果content内容比较长时,title和content之间的间距就非常大,如果能解决间距的问题应该就可以了
另外提一个建议,目前title为空字符串的话,infoBar的图标和content的间距好像也也偏大了点,不知道能否优化下,另外这个title是否能够默认缺省,有时候不想显示title,只显示content
可以贴一下最小复现代码吗
昨晚我也发现了,忘记提了,我是改成垂直布局显示才正常,当是水平布局如果content内容比较长时,title和content之间的间距就非常大,如果能解决间距的问题应该就可以了
复现代码的话直接用大佬那个infoBar的demo中的第一个信息提示,改成水平的就能复现
另外提一个建议,目前title为空字符串的话,infoBar的图标和content的间距好像也也偏大了点,不知道能否优化下,另外这个title是否能够默认缺省,有时候不想显示title,只显示content
我的也是,改成垂直就ok了,感谢~
v0.5.0修复了此问题,同时可以把 title 参数置为空字符串以达到隐藏标题的目的
v0.5.0修复了此问题,同时可以把 title 参数置为空字符串以达到隐藏标题的目的
大佬速度,我这就去更新看看
v0.5.0修复了此问题,同时可以把 title 参数置为空字符串以达到隐藏标题的目的
最新的0.5.0解决了长内容间距的问题,但是如果父窗口宽度比较小时没办法显示全,不知道能否兼容
消息条还是别放太长的消息吧
建议换成消息框
建议换成消息框
了解了,目前效果够用了,也可以改成垂直布局解决,大佬辛苦了
@qianye216 话说你那边的 checkbox 在 dpi 缩放大于 1 的时候会模糊吗
@qianye216 话说你那边的 checkbox 在 dpi 缩放大于 1 的时候会模糊吗
这个是1280*800分辨率
这个是默认的1440*900分辨率 看起来还好
我这边直接运行 check_box 的 demo 也不会模糊,但是切换到 gallery 的 demo,里面的 check_box 就会糊掉🤔
我这边直接运行 check_box 的 demo 也不会模糊,但是切换到 gallery 的 demo,里面的 check_box 就会糊掉🤔
Mac下我这运行gallery的demo,屏幕缩放后效果也还好
好吧,可能是 Windows 的问题
是我的使用方式不对吗,我看代码中是有调节尺寸的部分的。 这是一个使用了navigation的UI。这个InfoBar出现在一个属于navigation的页面(继承自ScrollArea),这页面类中创建了一个ScrollArea控件和ExpandLayout(综合参考你给出的setting和gallary两个demo),创建的InfoBar传递的parent为self(继承自ScrollArea的页面)