在PySide2中使用QComboBox时,弹出菜单似乎最初从左侧开始约10个像素左右,直到其完成向下的动画效果,然后在该点将右侧10个像素弹出到正确的位置。
我该如何解决?还是我可以禁用动画,以便菜单不进行动画设置而直接打开?而且我可以控制弹出窗口的动画时间吗?
这是两个屏幕截图,最上面的是组合框下拉列表动画时的截图,最下面的是打开下拉列表之后的截图:
以下是用于生成上面的组合框的简单示例代码:
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_())