2016-01-13 65 views
3

我在使用QComboBox的Qt應用程序中創建了一個下拉菜單。問題是,如果QComboBox有很多元素,當我點擊組合框時,選定的項目不與光標對齊。爲了證明:防止長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_() 

給出:

enter image description here

之前點擊QComboBox,所選擇的項目是 'A'。當我點擊它時,QComboBox向上移動,因爲它不適合在屏幕上,並且我的光標位於'p'的前面。

我可以看到在很多情況下這是否有意義,但是在我的特定應用程序中,我希望避免此行爲,即使它意味着QComboBox的底部將被截斷。當我點擊組合框時,我希望光標位於所選項目的前面。有什麼辦法可以禁用QComboBox的向上移動嗎?

+0

您可以嘗試設置[max visible items](http://doc.qt.io/qt-5/qcombobox.html#maxVisibleItems-prop),具體取決於鼠標在屏幕底部以上多遠?有人可能有比這更好的解決方案,但... – GPPK

+0

不幸的是,這個選項對Mac和GTK + – astrofrog

+0

沒有影響,這是一個恥辱...... – GPPK

回答

0

如果你有興趣在項目設置,你可以做到這一點與

QComboBox.setItem() 
QComboBox.setCurrentIndex() 

方法。