Функция автозаполнения для QLineEdit, не могу разобраться с слотами |
Здравствуйте, гость ( Вход | Регистрация )
Функция автозаполнения для QLineEdit, не могу разобраться с слотами |
FladeX |
20.2.2009, 2:04
Сообщение
#1
|
Студент Группа: Участник Сообщений: 67 Регистрация: 20.2.2009 Пользователь №: 564 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не получается разобраться с слотом для автоматического заполнения полей.
Имеется следующий код, реализующий простенькую форму с 5 QLabel, 5 QLineEdit и 3 QPushButton:
Мне нужно сделать автозаполнение всех 5 QLineEdit при нажатии на automode. Я добавил connect, но с описанием слота, а точнее функции setValue() возникли затруднения. Подскажите плиз, как надо сделать. |
|
|
Litkevich Yuriy |
20.2.2009, 3:13
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
connect(automode, SIGNAL(clicked()), x1edit, SLOT(setValue())); я так понимаю здесь setValue() предпологается членом твоего класса MyWidget?если так то в функции коннект нужно указывать this, вместо x1edit П.С. пока непоздно, перенеси весь класс MyWidget в отдельную пару файлов mywidget.h и mywidget.cpp, не взирая на компактность примера. |
|
|
SABROG |
20.2.2009, 9:02
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
И опять нет макроса Q_OBJECT и в конце "include main.moc"
Я вообще советую не создавать динамически кнопочки. Лучше .ui файл создать и как сказал Юрий вынести класс в отдельные файлы. И тоже верно подмечено setValue - слот MyWidget'a, а не x1edit. И возьми за правило передавать parent'a дочерним объектам, а то рано или поздно нарвешься на утечку памяти. А то ведь когда наступит время перепроектировать интерфейс придется угробить не мало времени, чтобы все переделать. Цитата но с описанием слота, а точнее функции setValue() возникли затруднения Какие? Просто реализуй функцию. А вообще когда дело доходит до такого количество однотипных коннектов есть смысл поместить кнопки в QButtonGroup. Сообщение отредактировал SABROG - 20.2.2009, 9:17 |
|
|
FladeX |
20.2.2009, 11:36
Сообщение
#4
|
Студент Группа: Участник Сообщений: 67 Регистрация: 20.2.2009 Пользователь №: 564 Спасибо сказали: 0 раз(а) Репутация: 0 |
если так то в функции коннект нужно указывать this, вместо x1edit Поправил. Сама функция такая будет?
Но тогда с областью видимости не могу разобраться, компилятор ругается
В отдельные файлы вынесу, мне главное принцип понять на примере данной функции, а дальше разберусь (надеюсь). |
|
|
SABROG |
20.2.2009, 11:50
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Ну правильно пишет, ведь у тебя объекты объявляются и создаются в конструкторе и только в пределах видимости (скобок {}) о них известно. Как временное решение могу посоветовать объявление указателей вынести в секцию данных класса.
|
|
|
Litkevich Yuriy |
20.2.2009, 12:45
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
x1edit.setText("x1"); Но тогда с областью видимости не могу разобраться, компилятор ругается у тебя все объекты созданы:во-первых/во-вторых, как указатели, а ты их используешь как обычные переменные; во-вторых/во-первых, обявлены в конструкторе, а раз ты их хочешь использовать за пределами его, то надо вынести в объявление класса; |
|
|
FladeX |
20.2.2009, 14:05
Сообщение
#7
|
Студент Группа: Участник Сообщений: 67 Регистрация: 20.2.2009 Пользователь №: 564 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ткните плиз пальцем, где и что не так:
На примере x1edit можете показать "как надо"? Был бы весьма признателен. ЗЫ. Трудно разобраться с ООП после скриптовых языков... |
|
|
SABROG |
20.2.2009, 14:19
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
FladeX |
20.2.2009, 14:42
Сообщение
#9
|
Студент Группа: Участник Сообщений: 67 Регистрация: 20.2.2009 Пользователь №: 564 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не работает. Вообще не появляется окно, хотя компилится все нормально...
|
|
|
SABROG |
20.2.2009, 15:09
Сообщение
#10
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
Текстовая версия | Сейчас: 23.12.2024, 0:13 |