[英]QComboBox dropdown not proper on Linux
On Windows: When I select any item from a non editable comboBox drop down, everytime drop down opens downwards because this is how QT natively implements it on windows.
在 Linux 上:當我 select 下拉菜單中的第一項時,它向下打開,但是如果我 select 任何其他項目,然后打開的某些條目向下完全向下展開,因為某些條目向下展開Linux 的主題。
有什么簡單的方法可以使它類似於 windows 以便整個下拉菜單向下打開?
此行為不取決於操作系統,而是取決於使用的 QStyle(例如,我使用 KDE Plasma 提供的具有您想要的行為的樣式,但如果我使用融合樣式,那么我會得到您不想要的行為) . 因此考慮到上述情況,一個可能的解決方案是在彈出窗口顯示后片刻修改彈出窗口的 position。
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class ComboBox(QtWidgets.QComboBox):
def showPopup(self):
super().showPopup()
container = self.view().parentWidget()
gp = self.mapToGlobal(self.rect().bottomLeft())
container.move(gp)
def main():
app = QtWidgets.QApplication(sys.argv)
combo = ComboBox()
combo.addItems([f"item {i}" for i in range(4)])
combo.show()
ret = app.exec_()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.