我可以改变qt Qcombobox的方向吗?

Can I change the direction of the qt Qcombobox?

我希望下拉列表总是在选项下面window。 但是,似乎 window 是自动调整的。 下拉列表上升并被截断。 我想知道如何在不自动排序列表的情况下对下方进行排序。

现在是这样的情况:

ex) ------------------               -------------------
    |    A        | ↓ |     ->      |         A         |
    -------------------             --------------------
                                    |         B         |
                                    ---------------------
                                    |         C         |
                                    --------------------
    C click ->
                                     -------------------
                                     |        A         |
                                     --------------------
                                     |        B         |
    -------------------              --------------------
    |    C         | ↓ |     ->      |        C         |
    -------------------              --------------------

但我想要:

   ----------------------      ->    -------------------
  |           C   |  ↓  |            |        A        |
  -----------------------            -------------------
                                     |        B        |
                                      ------------------
                                     |        C        |
                                     -------------------

请帮帮我。

您必须在显示后移动弹出窗口,为此您必须移动作为 view() 父级的内部 QFrame,如下所示:

import sys

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

class ComboBox(QComboBox):
    def showPopup(self):
        QComboBox.showPopup(self)
        self.view().parent().move(self.mapToGlobal(QPoint()))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = QMainWindow()
    cw = QWidget()
    lay = QVBoxLayout(cw)

    view = ComboBox()
    view.addItems(["A", "B", "C"])

    lay.addWidget(view)
    lay.addWidget(QTableWidget())
    w.setCentralWidget(cw)
    w.show()
    sys.exit(app.exec_())