Size: a a a

2020 May 02

M

Mr.Mait in Qt
Bril
У меня currentRowChanged из примера вообще не посылается, и я туплю почему так
Так делали?
Магия (при первом запуске программы):
* Добавить итем.
* Выбрать итем.
* Удалить итем.
* После удаления прилетают два сигнала currentRowChanged, вместо одного.
источник

B

Bril in Qt
Так, на сколько я понял как это происходит: изменение активной кнопки шлет событие общему родителю (listwidgetа и кнопки) об изменении фокуса, родитель в свою очередь шлет его листвиджету, который на это изменение перестраивает индекс внутренней модели QItemSelectionModel::setCurrentIndex, ну а та уже и посылает сигнал повторно, как то так, вроде как и не баг, а так сказать некий нюанс внутренней работы
источник

V

Vlad in Qt
Я реализовую визуализацию сортировки в qml. У меня из c++ в qml идёт 3 сигнала: первый - меняет цвет двух элементов, второй меняет их местами, третий - меняет цвета обратно, но все три срабатывают одновременно. Чем их можно стопать?
источник

V

Vlad in Qt
Я пробовал msleep и qtimer но они все ровно ждут пока все таймеры пройдут и все вместе срабатывают
источник

Е

Егор in Qt
Vlad
Я пробовал msleep и qtimer но они все ровно ждут пока все таймеры пройдут и все вместе срабатывают
покажи как делаешь
источник

V

Vlad in Qt
источник

V

Vlad in Qt
источник

V

Vlad in Qt
источник

Е

Егор in Qt
таймером сделай а не тред усыпляй
источник

ee

elias eliatto in Qt
привет! как запретить прокрутку табов мышкой в QTabWidget? Читал, что надо переопределять wheelEvent в QTabBar, но QTabWidget::setTabBar является protected.
источник

АП

Александр Петров... in Qt
Так, и в чем проблема переопределить protected?
источник

АП

Александр Петров... in Qt
Если я не ошибаюсь, то все события в куте как protected определены
источник

АП

Александр Петров... in Qt
Создай свой класс-наследник от QTabWidget и усё
источник

АП

Александр Петров... in Qt
В нем переопредели событие колёсика в котором запрети передавать дальнейшую обработку классу-родителю
источник

ee

elias eliatto in Qt
Александр Петров
Так, и в чем проблема переопределить protected?
не слишком ли вербозно  - делать двух наследников (QTabWidget и QTabBar)?
источник

ee

elias eliatto in Qt
Александр Петров
В нем переопредели событие колёсика в котором запрети передавать дальнейшую обработку классу-родителю
понял, спасибо
источник

M

Mr.Mait in Qt
Bril
Так, на сколько я понял как это происходит: изменение активной кнопки шлет событие общему родителю (listwidgetа и кнопки) об изменении фокуса, родитель в свою очередь шлет его листвиджету, который на это изменение перестраивает индекс внутренней модели QItemSelectionModel::setCurrentIndex, ну а та уже и посылает сигнал повторно, как то так, вроде как и не баг, а так сказать некий нюанс внутренней работы
Если добавить допустим два итема, потом удалить два итема, а потом пытаться воспроизвести баг, то магии его не будет в последующие разы :)
источник

S

Sergey in Qt
Собрал через pyqt5 и fbs приложение. Все вызовы getOpenFileName в дебаг режиме открывают текущий workdir, а установщик  открывает корневую папку /

Можно ли изменить это поведение?
источник

B

Bril in Qt
Mr.Mait
Если добавить допустим два итема, потом удалить два итема, а потом пытаться воспроизвести баг, то магии его не будет в последующие разы :)
Короче это из-за гонки евентов, там когда удаляется единственный item из списка, текущий индекс как бы становится -1, но где-то он еще не успевает внутри поменяться пока полностью не отработает слот currentRowChanged, так как до этого прилетает событие фокуса от кнопки при setEnabled, и внутренней модели повторно прилетает опять индекс -1, а внутри все еще 0 индекс, по этому повторно и шлет сигнал.
Если setEnabled у кнопки в очередь событий поставить, через emit или invokeMethod, то магия исчезает )
источник
2020 May 03

V

Vlad in Qt
В таймер qml можно передать переменную?
источник