При использовании QComboBox в PySide2 всплывающее меню, кажется, первоначально начинается примерно на 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_())