我希望下拉列表始终低于选择窗口。 但是,似乎窗口会自动调整。 下拉列表上升并被截断。 我想知道如何在不自动排序列表的情况下对其进行排序。
现在情况如此:
ex) ------------------ ------------------- | A | ↓ | -> | A | ------------------- -------------------- | B | --------------------- | C | -------------------- C click -> ------------------- | A | -------------------- | B | ------------------- -------------------- | C | ↓ | -> | C | ------------------- --------------------
但我想:
---------------------- -> ------------------- | C | ↓ | | A | ----------------------- ------------------- | B | ------------------ | C | -------------------
请帮帮我。
答案 0 :(得分:0)
您必须在显示弹出窗口后移动弹出窗口,为此您必须移动内部QFrame,它是view()
的父级,如下所示:
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_())