Size: a a a

2020 May 30

M

Mr_ChAI in Qt
Как из дизайнера тулбар с кнопочками создать?
источник

F

FPOHTMEH in Qt
Mr_ChAI
Как из дизайнера тулбар с кнопочками создать?
В дизайнере тулбар можно добавить только в главное окно через контекстное меню. А в сам тулбар  перетягивать только QAction.
Динамически можно сделать намного больше
источник

B

Bril in Qt
Stas Koynov
Я не встречал в доках, что если вы сделали коннект к сигналу финишед, то он должен быть многоразовым и вам запрещено там что-то эдокое делать даже со своими данными. скажем смещать их или еще чего. потому что возможна ситуация что в слот мы будем заходить N раз (как минимум дважды, если так сложаться звезды)
Он не обязан железно только один раз вызываться, он вызывается так же и после эмита ошибок, так и должно быть.
В доке даже говориться об этом
[signal] void QModbusReply::errorOccurred(QModbusDevice::Error error)
...
The finished() signal will probably follow.
источник

SK

Stas Koynov in Qt
Bril
Он не обязан железно только один раз вызываться, он вызывается так же и после эмита ошибок, так и должно быть.
В доке даже говориться об этом
[signal] void QModbusReply::errorOccurred(QModbusDevice::Error error)
...
The finished() signal will probably follow.
я видел код setError да там в конце идет вызов setFinished, у вас реплай отработал точка(да с ошибкой, и вы можете ее прочитать). теперь вопрос, где написано, что я послав один запрос и получив один реплай. получу два финишеда, с разными ошибками?
источник

SK

Stas Koynov in Qt
если это настолько тонко, что я должен был это как учителя говорят априори... ну так вот мне не априори ниразу.
источник

SK

Stas Koynov in Qt
Может так это и должно быть, так это и задумано, я потому и спрашиваю
источник

EV

Eduard Voronkin in Qt
тут когда -то писали, про то, что в SQLite в Qt можно только с одного потока работать. А как это обойти? Можно ли как-то сделать, чтобы все методы класса выполнялись на каком-то его локальном QTherad, причем остальной код работал как и раньше, просто все методы класса, который менеджит соединение с базой, выполнялись на его локальном QThread?
источник

EV

Eduard Voronkin in Qt
унаследовать класс, который менеджит соединение, от кутреда?
источник

AS

Anatoly Shirokov in Qt
@Monty_Py у меня все общение с субд идет в отдельном треде, вот пример, как это можно огранизовать.
источник

EV

Eduard Voronkin in Qt
как я понял, у меня будет мембер ExecutorService  в моем классе, и каждый раз, когда зовется метод этого класса, всю работу я буду на этот сервис постить?
источник

EV

Eduard Voronkin in Qt
ну и мне нужно ещё будет сделать moveToThread для моего объекта. Т.к. он создается в гуи потоке сейчас, нужно будет его мувнуть в ExecutorService
источник

AS

Anatoly Shirokov in Qt
Eduard Voronkin
как я понял, у меня будет мембер ExecutorService  в моем классе, и каждый раз, когда зовется метод этого класса, всю работу я буду на этот сервис постить?
да, примерно.
источник

AS

Anatoly Shirokov in Qt
Eduard Voronkin
ну и мне нужно ещё будет сделать moveToThread для моего объекта. Т.к. он создается в гуи потоке сейчас, нужно будет его мувнуть в ExecutorService
не нужно moveToThread делать, все вопросы решает ExecutorService, ExecutorService выполнит твою задачу в фоне и вернет в твой ui поток QVariant, а QVariant можно положить все что угодно и список или объект любой другого зарегенного класса
источник

AS

Anatoly Shirokov in Qt
но это пример, ты можешь как-то иначе общаться с фоновым потоком. можешь официальный пример посмотреть https://doc.qt.io/qt-5/qthread.html#details
источник

EV

Eduard Voronkin in Qt
та я уже взял ваш. только он что-то не билдится
источник

EV

Eduard Voronkin in Qt
источник

EV

Eduard Voronkin in Qt
извиняюсь :) у вас только ворнинг в коде, не билдилось из-за меня
источник

EV

Eduard Voronkin in Qt
>requested database does not belong to the calling thread.

собралось, но эта проблема всё равно осталась...
вроде всю работу с бд перенёс в submit`ы
источник

M

Minmaxminor in Qt
Mr_ChAI
Как из дизайнера тулбар с кнопочками создать?
ПКМ на главном окне + добавить панель инструментов. Для кнопок сначала нужно создать menuBar, там QAction. Все это в дизайнере.
источник

EV

Eduard Voronkin in Qt
Eduard Voronkin
>requested database does not belong to the calling thread.

собралось, но эта проблема всё равно осталась...
вроде всю работу с бд перенёс в submit`ы
всё, разобрался
источник