2016-02-24 4 views
1

Например, в QTableWidget, когда я нажимаю на ячейку таблицы, будут выбрасываться как cellClicked(), так и itemSelectionChanged(). Но какой из них на первом месте? Это предопределено или нет?Как узнать, какой сигнал испускается первым?

Так что в основном вопрос заключается в том, что при подаче нескольких сигналов может быть выбрана одна операция, какая из них первой? Я не нашел никакой документации по этому поводу.

ответ

2

Вы можете подключиться к обоим сигналам и посмотреть, какой слот называется первым. itemSelectionChanged - первый.

Вы правы: это поведение не документировано.

Когда несколько сигналов излучаются той же операции, и порядок четко не указано, то лучше не полагаться на него:

  • Это может измениться в следующей версии Qt
  • В некоторые редкие случаи могут даже измениться во время работы приложения (когда внутренние подключения используются внутри)
+0

Спасибо @Georgy Pashkov. Вы решили мои проблемы. Я нашел тот же порядок, что и вы, экспериментом. Но я не был уверен, будут ли они всегда одинаковыми на разных платформах/средах. Думаю, я ничего не буду принимать здесь, так как это не задокументировано. – vlursk

Смежные вопросы