【发布时间】:2016-04-18 08:08:12
【问题描述】:
我正在使用 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 的向上移动?
【问题讨论】:
-
您可以尝试设置max visible items,具体取决于鼠标在屏幕底部上方的距离?有人可能有比这更好的解决方案......
-
很遗憾这个选项对 Mac 和 GTK+ 没有影响
-
哦,真可惜……
-
您可以使用
QComboBox::view方法获取列表视图。你可以试着弄乱它。也许设置一个最大高度或其他东西。看看是否有帮助。不过可能不是最漂亮的解决方案。
标签: python qt user-interface pyqt