Russian Qt Forum
Сентябрь 30, 2024, 18:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Неопределенное кол-во кнопок  (Прочитано 4504 раз)
majatu
Гость
« : Март 30, 2009, 13:26 »

Как быть, если я не знаю сколько кнопок у меня будет?
точнее, я по одной кнопке добавляю текстовое поле и кнопку удалить до бесконечности, удалить соотв удаляет текстовое поле и саму кнопку
как узнать, по какой кнопке удалить я нажал? тк текстовых полей и кнопок неопределенное кол-во, signalmapper не срабатывает... короче я в тупике

пример:
-----
добавить
------

текстовое поле --- удалить
текстовое поле --- удалить
.....
Записан
QCasper
Гость
« Ответ #1 : Март 30, 2009, 13:52 »

как узнать, по какой кнопке удалить я нажал?

А зачем узнавать?

widget.h:

Код:
class Widget : public QWidget {
Q_OBJECT
public:
Widget(QWidget *parent = 0);

private slots:
void add();

private:
QGridLayout *m_Lt;
int m_I;
};

widget.cpp:

Код:
Widget::Widget(QWidget *parent):QWidget(parent) {
m_I = 1;
QPushButton *addBtn = new QPushButton(tr("Add"), this);

m_Lt = new QGridLayout(this);
m_Lt->addWidget(addBtn, 0, 0, 1, 2);

connect(addBtn, SIGNAL(clicked()), SLOT(add()));
}
void Widget::add() {
QLineEdit *le = new QLineEdit(this);
QPushButton *btn = new QPushButton(tr("Remove"), this);
m_Lt->addWidget(le, m_I, 0);
m_Lt->addWidget(btn, m_I++, 1);

connect(btn, SIGNAL(clicked()), le, SLOT(deleteLater()));
connect(btn, SIGNAL(clicked()), btn, SLOT(deleteLater()));
}
Записан
majatu
Гость
« Ответ #2 : Март 30, 2009, 14:03 »

о круто, пасиба огромное, а то я уже указатели стал сравнивать и по хешу искать
Записан
majatu
Гость
« Ответ #3 : Март 30, 2009, 14:14 »

а можно еще глупый вопрос? как потом узнать, какие остались QLineEdit?
Записан
QCasper
Гость
« Ответ #4 : Март 30, 2009, 14:21 »

а можно еще глупый вопрос? как потом узнать, какие остались QLineEdit?

Ну вобщем несколько способов есть, Вы лучше конечную задачу изложите.
Записан
majatu
Гость
« Ответ #5 : Март 30, 2009, 14:26 »

нужно будет из этих эдитов в базу данные затащить по щелчку уже другой кнопки, думаю, что есть цикл для gridlayout
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Март 30, 2009, 14:30 »

нужно будет из этих эдитов в базу данные затащить по щелчку уже другой кнопки, думаю, что есть цикл для gridlayout

Думаю эта тема поможет Перебрать все элементы слоя
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
majatu
Гость
« Ответ #7 : Март 30, 2009, 14:39 »

будет во как, по кнопке ... будет выскакивать диалог с выбором из списка значений,
по кнопке ок, будет заноситься id выбранного поля, вопрос заключается в том, как не дать пользователю
ввести одни и теже id в разные lineedit, ведь если он удалит потом lineedit и id, то какой удалил непонятно

я сейчас смотрю вроде как есть сигнал destroyed(QWidget *)


line ---...---del
line ---...---del
line ---...---del
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.091 секунд. Запросов: 23.