【问题标题】:Preventing long QComboBox from moving up防止长 QComboBox 向上移动
【发布时间】: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


【解决方案1】:

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

QComboBox.setItem ()
QComboBox.setCurrentIndex ()

方法。

【讨论】:

    猜你喜欢
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 2018-12-13
    • 2016-02-04
    • 2018-10-01
    • 1970-01-01
    相关资源
    最近更新 更多