Динамически создавать объекты, и и как на них повесить сигналы? |
Здравствуйте, гость ( Вход | Регистрация )
Динамически создавать объекты, и и как на них повесить сигналы? |
FenixTES |
17.11.2009, 10:31
Сообщение
#1
|
Студент Группа: Участник Сообщений: 20 Регистрация: 14.11.2009 Пользователь №: 1230 Спасибо сказали: 0 раз(а) Репутация: 0 |
предположим, у меня есть число, мне нужно создать несколько кнопок(кол-во кнопок == числу), и потом повесить на них сигналы.
долго с этим долбался, что только не пробывал, создавал и массивы кнопок, и пробывал через QMap... ниче только не получилось... |
|
|
Elfinit |
17.11.2009, 11:05
Сообщение
#2
|
Участник Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1 |
|
|
|
Litkevich Yuriy |
17.11.2009, 13:00
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
FenixTES, также смотри пример Калькулятор:
%QTDIR%\examples\widgets\calculator\calculator.cpp |
|
|
niXman |
17.11.2009, 22:01
Сообщение
#4
|
Участник Группа: Участник Сообщений: 169 Регистрация: 18.6.2008 Пользователь №: 204 Спасибо сказали: 1 раз(а) Репутация: 0 |
QSignalMapper
|
|
|
FenixTES |
18.11.2009, 16:52
Сообщение
#5
|
Студент Группа: Участник Сообщений: 20 Регистрация: 14.11.2009 Пользователь №: 1230 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
eriser |
6.1.2011, 15:13
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 6.1.2011 Пользователь №: 2328 Спасибо сказали: 0 раз(а) Репутация: 0 |
Мне нужно динамически создать группу объектов (2 кнопки и метка на каком нибудь лейауте (не важно)). То-есть допустим при каждом нажатии на кнопку в griglayout добавляется рамка, в ней две кнопки и метка со своими параметрами. С одной кнопкой всё получается, а как собрать всё это в конструкторе не могу понять. В Делфи с этим проблем не было, а с Qt и c++ в целом - только начинаю изучать. В принципе всё похоже, но в этом пе получается провести аналогию.
Заранее спасибо! |
|
|
Litkevich Yuriy |
6.1.2011, 19:53
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
eriser, ничего не понял из твоего описания.
То-есть допустим при каждом нажатии на кнопку в griglayout добавляется рамка, в ней две кнопки и метка со своими параметрами. один раз нажали, что получилось? Второй раз нажали, что получилось? По какому принципу в griglayout помещаются новые объекты, построчно?Нарисуй эскиз. одной кнопкой всё получается, а как собрать всё это в конструкторе не могу понять. приведи код с одной кнопкой. О каком конструкторе речь, о конструкторе класса?
|
|
|
eriser |
7.1.2011, 0:02
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 6.1.2011 Пользователь №: 2328 Спасибо сказали: 0 раз(а) Репутация: 0 |
При каждом нажатии на кнопку из файла считывается строка или несколько строк.
Динамически создаётся массив из экземпляров моего класса (1 по 6 или 12 штук) и располагается на форме в каком-то порядке. Каждый экземпляр содержит label(сюда передаётся считанная строка) и 2 кнопки Да и Нет. Каждый этот объект со своим идентификатором, а кнопками фиксируется ответ пользователя в таблице статистики. Пытался создать класс на основе label. В конструкторе класса 1.создаю две кнопки 2. одну метку 3. layout 4. кнопки и метку добавляю в layout 5. на фрейм устанавливаю layout На форме программы ничего не появляется. Но если в конструкторе добавляю show, тогда то что я задумал появляется, но в новом окне. virtbox.h
virtbox.cpp
widget.cpp
судя по тому, что не получается что-то не так... |
|
|
Litkevich Yuriy |
7.1.2011, 0:17
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Т.к. функциональность
Но если в конструкторе добавляю show, тогда то что я задумал появляется, но в новом окне. метод этот нужно вызывать после создания объекта, когда родитель (у тебя Widget) уже создан:
|
|
|
eriser |
7.1.2011, 11:03
Сообщение
#10
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 6.1.2011 Пользователь №: 2328 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо, что помогаете! Пробовал, не выходит ничего. Дело в том что ButtonOnLabel::setText ("'это я вижу"); создаются, а кнопок нет?
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 10:35 |