簡體   English   中英

Linux 上的 QComboBox 下拉菜單不正確

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM