QComboBox弹出动画故障

时间:2019-01-30 16:21:10

标签: animation popup dropdown qcombobox pyside2

在PySide2中使用QComboBox时,弹出菜单似乎最初从左侧开始约10个像素左右,直到其完成向下的动画效果,然后在该点将右侧10个像素弹出到正确的位置。

我该如何解决?还是我可以禁用动画,以便菜单不进行动画设置而直接打开?而且我可以控制弹出窗口的动画时间吗?

这是两个屏幕截图,最上面的是组合框下拉列表动画时的截图,最下面的是打开下拉列表之后的截图:

two screenshots of comobobox

以下是用于生成上面的组合框的简单示例代码:

from PySide2 import QtCore, QtWidgets
import sys

class MyDialog(QtWidgets.QDialog):
    def __init__(self, parent=None):
        super(MyDialog, self).__init__(parent)

        self.setWindowTitle('Modal Dialogs')
        self.setMinimumSize(300,80)

        # remove help icon (question mark) from window
        self.setWindowFlags(self.windowFlags() ^ QtCore.Qt.WindowContextHelpButtonHint)

        # create widgets, layouts and connections (signals and slots)
        self.create_widgets()
        self.create_layouts()
        self.create_connections()

    def create_widgets(self):
        self.combo = QtWidgets.QComboBox()
        self.combo.addItems(['one','two','three'])

    def create_layouts(self):
        # self must be passed to the main_layout so it is parented to the dialog instance
        main_layout = QtWidgets.QVBoxLayout(self)

        main_layout.addWidget(self.combo)

    def create_connections(self):
        pass


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)

    my_dialog = MyDialog()

    my_dialog.show()  # Show the UI
    sys.exit(app.exec_())

0 个答案:

没有答案