我注意到,当我选择“材质样式”,然后在模型中创建包含大量元素的组合框时,当第二次单击时,它会向下滑动弹出。问题是我不能选择组合框中的最后一个元素。在创建对话框/弹出窗口时,我已经遇到过这种问题(向下滑动弹出窗口并稍微向右),但随后我使用了“parent:Overlay.Overlay”并设置了x、y坐标,一切正常。这次我不知道如何修理它
截图:
第一次单击组合框:
第二次单击组合框:
这是我的密码:
main.qml
import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
Window {
id: window
width: 640
height: 480
visible: true
title: qsTr("Hello World")
ComboBox {
id: comboBox
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
model: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
}
}
main.py:
import sys
import os
from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
os.environ["QT_QUICK_CONTROLS_STYLE"] = "Material"
engine = QQmlApplicationEngine()
engine.load(os.path.join(os.path.dirname(__file__), "main.qml"))
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec_())
正如您在我的系统上所描述的那样(在使用英特尔CPU的Ubuntu 20.04上),这个问题再次出现,所以它看起来确实是一个bug
我可以通过定制ControlBox的弹出窗口来解决这个问题(请参见Customizing ComboBox)。 这是我的main.qml:
我使用了一个“默认”qtquickcontrols2.conf文件:
为了获得与ControBox在设置时的默认行为相似的行为,或者与您所期望的行为相似的行为,您可能需要对自定义弹出窗口的外观和感觉进行一些修改(正如我所做的那样)(我使用了y、隐式权重、填充和Material.elevation,但只保留了材质的属性,高程除外)
您可能注意到我用ApplicationWindow替换了Window,因为这是我所熟悉的,并提供了对ApplicationWindow覆盖的访问
我希望此解决方案也适用于您的设置
相关问题 更多 >
编程相关推荐