96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485
|
|||||||||||||||||||||||||||||||||||||||||
1 | |||||||||||||||||||||||||||||||||||||||||
Как соединить сигнал с "неизвестными" аргументами со слотом?04.07.2015, 14:57. Показов 3121. Ответов 24
Метки нет (Все метки)
Как можно соединить "неизвестный" сигнал со слотом, у которого все принимаемые параметры - QVariant?
Есть такая функция:
функция phpslot() находит нужный receiver из списка и вызывает соответствующий слот, но таким образом я не могу передавать в слот receiver'a параметры, потому что функция phpslot() ничего не принимает... тогда я попробовал переписать функцию phpslot() так:
Такой вариант:
а такой:
Добавлено через 11 минут Еще была идея просто получить список переданных аргументов из сигнала, и вызвать нужный слот с этими аргументами, но я не нагуглил как можно такое провернуть.
0
|
04.07.2015, 14:57 | |
Ответы с готовыми решениями:
24
Ошибки в файле moc при попытке соединить сигнал со слотом Как соединить сигнал класса MainWindow openFile c слотом класса MainController openFile? Как QAction соединить со слотом? Как связать сигнал QListWidget со слотом QTextEdit ? Не конектится сигнал со слотом |
66 / 66 / 18
Регистрация: 31.03.2015
Сообщений: 253
|
|
07.07.2015, 10:14 | 21 |
Что мешает емитировать сигнал не с множеством параметров неизвестного типа, а с единственным параметром типа QVariant? А вот уже в этот параметр вы можете запихнуть что угодно и в любом количестве.
В этом случае проблем в соединении сигнала/слота не возникнет. Правда возникнут проблемы в самом слоте (как допереть, что на самом деле в аргументе спрятано ). Но это уже забота разработчика.
0
|
96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485
|
|
07.07.2015, 10:23 [ТС] | 22 |
для этого есть QVariant::type()
но я еще раз повторю: вариант переписывать стандартные сигналы и заменять их на свои - не совсем вариант но если и дальше придется под каждый сигнал писать if(signalName == "..."), то, наверное, буду переписывать... в любом случае мне уже пришлось делать обертки над виджетами, чтобы все их методы сделать Q_INVOKABLE для доступа к ним через invokeMethod
0
|
Мотороллер
|
07.07.2015, 15:35
#24
|
Не по теме: Avazart, а что ТС ваяет?
0
|
96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485
|
|
07.07.2015, 15:51 [ТС] | 25 |
0
|
07.07.2015, 15:51 | |
07.07.2015, 15:51 | |
Помогаю со студенческими работами здесь
25
Сигнал не коннектится со слотом Связать сигнал еще не существующего объекта со слотом Программа неожиданно завершилась. Когда соединяю сигнал со слотом Законнектить сигнал элемента контейнера, на который установлен и итератор со слотом Как связать сигнал одного класса со слотом другого класса, содержащего указатель на объект этого класса? Как соединить сигнал от формы с классом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |