Как эффективно обрабатывать несколько qspinbox, каждый изменяя отдельную переменную класса - PullRequest
2 голосов
/ 13 января 2011

У меня есть класс со многими закрытыми переменными, которые мне нужно иметь возможность изменять с помощью qspinboxes.Я могу сделать это, имея отдельный слот для каждой переменной, связанной с ее конкретной спинбоксом, но код становится длинным и повторяющимся.Я действительно хочу иметь один слот, который принимает адрес переменной для изменения и ее новое значение.Я думаю, что я мог бы как-то использовать qsignalmapper для этого, но я не могу понять, как.Кто-нибудь может помочь?- желательно с примером, так как я начинающий программист QT.Я использую Qt4 с C ++ и Fedora 14

Ответы [ 2 ]

0 голосов
/ 14 января 2011

Поверьте мне, вы захотите сделать это и просто иметь несколько повторяющихся линий connect () и функции доступа к членам.Это не так уж плохо.QSignalMapper предназначен для сигналов без параметров и для связи их с целочисленными идентификаторами или указателями на объекты QObject.Это не твой сценарий.

0 голосов
/ 13 января 2011

Скорее всего, вы захотите создать собственный подкласс спин-бокса, который также может отслеживать 1 переменную для изменения. Создайте свой собственный подкласс вместо поля прокрутки, и для каждого блока прокрутки передайте переменную, которую он должен изменять. Внутри вашего пользовательского класса у вас есть один слот, который модифицирует переменную, о которой он знает.

Существуют варианты этой идеи, но это простой способ уменьшить все это повторение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...