New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: 在FlowLayout添加很多相同控件后拖动窗体,窗体尺寸突变 #858
Labels
bug
Something isn't working
Comments
这应该是预期行为,并不是一个 bug |
我只想拖动窗口,它会突然变得很长,而FlowLayout中内容很多,突然边长的窗口早就超出屏幕范围。请问这种突变是预期行为? 20240503_163240.mp4 |
lmhHydropower
changed the title
[Bug]: 在FlowLayout添加很多相同控件后鼠标按住主窗体尝试拖动窗体自动变化
[Bug]: 在FlowLayout添加很多相同控件后拖动窗体,窗体尺寸突变
May 3, 2024
因为QWidget的大小是固定的,你这样写程序只能自动缩放到能够展示所有的控件。其实怎么使用取决于你想要实现的效果。 如果你希望不缩放窗口大小,形成从上到下的滚动区域,那你应该继承自QScrollArea,例如: # coding:utf-8
import sys
from PyQt5.QtCore import QEasingCurve
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QScrollArea
from qfluentwidgets import FlowLayout
class Demo(QScrollArea):
def __init__(self):
super().__init__()
self.w = QWidget(self)
self.setWidget(self.w)
self.setWidgetResizable(True)
layout = FlowLayout(self.w, needAni=True)
# customize animation
layout.setAnimation(250, QEasingCurve.OutQuad)
layout.setContentsMargins(30, 30, 30, 30)
layout.setVerticalSpacing(20)
layout.setHorizontalSpacing(10)
layout.addWidget(QPushButton('aiko'))
layout.addWidget(QPushButton('刘静爱'))
layout.addWidget(QPushButton('柳井爱子'))
layout.addWidget(QPushButton('aiko 赛高'))
layout.addWidget(QPushButton('aiko 太爱啦😘'))
layout.addWidget(QPushButton('aiko'))
layout.addWidget(QPushButton('刘静爱'))
layout.addWidget(QPushButton('柳井爱子'))
layout.addWidget(QPushButton('aiko 赛高'))
layout.addWidget(QPushButton('aiko 太爱啦😘'))
layout.addWidget(QPushButton('aiko'))
layout.addWidget(QPushButton('刘静爱'))
layout.addWidget(QPushButton('柳井爱子'))
layout.addWidget(QPushButton('aiko 赛高'))
layout.addWidget(QPushButton('aiko 太爱啦😘'))
layout.addWidget(QPushButton('aiko'))
layout.addWidget(QPushButton('刘静爱'))
layout.addWidget(QPushButton('柳井爱子'))
layout.addWidget(QPushButton('aiko 赛高'))
layout.addWidget(QPushButton('aiko 太爱啦😘'))
self.resize(250, 300)
self.setStyleSheet('Demo{background: white} QPushButton{padding: 5px 10px; font:15px "Microsoft YaHei"}')
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Demo()
w.show()
app.exec_() 其他也同理,这个layout一般也不会单独作为顶级窗口的layout使用才对 |
感谢,感谢。👍👍 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What happened?
在FlowLayout添加很多相同控件后鼠标按住主窗体尝试拖动窗体尺寸自动变化。
或者尝试放大窗口时,窗口尺寸突然变大
Operation System
Windows 11 家庭中文版 23H2 22631.3447
Python Version
3.8.18
PyQt/PySide Version
PyQt 5.15.9
PyQt/PySide-Fluent-Widgets Version
1.3.5
How to Reproduce?
在 flow_layout 的例子中,添加很多QPushButton,然后运行。尝试拖动窗体,就可以复现,窗口尺寸持续增大的bug。或者,开始运行后,尝试将窗体高度拉大,窗体会突然变大。
Minimum code
The text was updated successfully, but these errors were encountered: