Python 防止长QCOMBOX向上移动

Python 防止长QCOMBOX向上移动,python,qt,user-interface,pyqt,Python,Qt,User Interface,Pyqt,我正在使用QComboBox在Qt应用程序中创建一个下拉菜单。问题是,如果QComboBox有许多元素,当我单击组合框时,所选的项目没有与光标对齐。证明: import string from PyQt4.QtGui import QApplication, QComboBox app = QApplication([]) widget = QComboBox() for letter in string.ascii_letters: widget.addItem(letter)

我正在使用QComboBox在Qt应用程序中创建一个下拉菜单。问题是,如果QComboBox有许多元素,当我单击组合框时,所选的项目没有与光标对齐。证明:

import string
from PyQt4.QtGui import QApplication, QComboBox

app = QApplication([])

widget = QComboBox()
for letter in string.ascii_letters:
    widget.addItem(letter)

widget.show()
app.exec_()
给出:

单击QComboBox之前,所选项目为“a”。当我点击它时,QComboBox向上移动,因为它不适合屏幕,我的光标在“p”前面


我可以看出这在很多情况下是有意义的,但在我的特定应用程序中,我希望避免这种行为,即使这意味着QComboBox的底部将被截断。单击组合框时,我希望光标位于所选项目的前面。有没有办法禁用QComboBox的向上移动?

如果您对设置项目感兴趣,可以使用

QComboBox.setItem ()
QComboBox.setCurrentIndex ()

方法。

您可以根据鼠标离屏幕底部的距离来尝试设置?有人可能会有一个更好的解决方案,但…不幸的是,这个选项对Mac和GTK+O没有影响,这是一个遗憾…你可以用这个方法获得列表视图。你可以试着把它弄乱。也许设定一个最大高度或者别的什么。看看这是否有帮助。不过,这可能不是最好的解决方案。