Russian Qt Forum
Ноябрь 15, 2024, 17:34
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Общий
>
Переменная объекта
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Переменная объекта (Прочитано 8697 раз)
ruzik
Гость
Переменная объекта
«
:
Февраль 04, 2011, 19:18 »
Обращение к переменной объекта
А как обратиться к переменной объекта, например мне нужен text у QLineEdit
Вот так выдает ошибку
QLineEdit.text
QLineEdit->getText()
Записан
Omg
Гость
Re: Переменная объекта
«
Ответ #1 :
Февраль 04, 2011, 19:41 »
Если обращение внутри класса то просто:
В заголовочном:
QLineEdit line;
в конструкторе класса инициируем текст едит.
line = new QLineEdit;
а потом где угодно внутри класса обращаемся
line.text();
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Переменная объекта
«
Ответ #2 :
Февраль 04, 2011, 19:45 »
ruzik, это вопрос по с++. Ты его совершенно не знаешь. Не питонщик, случаем?
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ruzik
Гость
Re: Переменная объекта
«
Ответ #3 :
Февраль 04, 2011, 20:44 »
Нет, С++ я знаю вроде как достаточно неплохо, насколько может знать 10 классник, раньше какое-то время сидел на net'e
А как раз таки С++ обращение, то есть QLineEdit.text не идет, оказывается надо еще и скобки писать(то есть обращение к функции, а не к переменной text типа QString)
Просто опыта еще очень мало, С++ сам выучил, net тоже(хотя его я не особо выучил, так баловался)
Записан
Omg
Гость
Re: Переменная объекта
«
Ответ #4 :
Февраль 04, 2011, 21:06 »
Где в классе QLineEdit вы нашли переменную к которой можно обратиться?
line.text() вызывает метод объекта класса QLineEdit
"text : QString
This property holds the line edit's text.
Setting this property clears the selection, clears the undo/redo history, moves the cursor to the end of the line and resets the modified property to false. The text is not validated when inserted with setText().
The text is truncated to maxLength() length.
By default, this property contains an empty string.
Access functions:
QString text () const
void setText ( const QString & )
See also insert() and clear()."
Записан
ufna
Гость
Re: Переменная объекта
«
Ответ #5 :
Февраль 04, 2011, 21:08 »
Цитата: ruzik от Февраль 04, 2011, 20:44
Нет, С++ я знаю вроде как достаточно неплохо, насколько может знать 10 классник, раньше какое-то время сидел на net'e
А как раз таки С++ обращение, то есть QLineEdit.text не идет, оказывается надо еще и скобки писать(то есть обращение к функции, а не к переменной text типа QString)
Просто опыта еще очень мало, С++ сам выучил, net тоже(хотя его я не особо выучил, так баловался)
В 10м классе сипипи можно знать гораздо лучше )
а вопрос как раз из ряда лексики языка, что есть основы.
Записан
ruzik
Гость
Re: Переменная объекта
«
Ответ #6 :
Февраль 04, 2011, 21:32 »
Цитировать
Где в классе QLineEdit вы нашли переменную к которой можно обратиться?
Так я же по-моему и написал, что хотел обратиться как к переменной, как например в net'e, по незнанию, и меня исправили, что надо обращаться к нужной функции
Цитировать
В 10м классе сипипи можно знать гораздо лучше )
а вопрос как раз из ряда лексики языка, что есть основы.
Нет вы не правы, вопрос по лексике фраемворка, а не самого С++, так как это Qt диктует, что если хочешь получить текст используй функцию, просто удобно было бы сделать предпроцессор, который бы в таком случае позволял бы обращаться к переменным объектов, и по-моему непонятно почему не так это реализовали
Например в net'e подобная реализация(та про которую я говорю), насколько я знаю в mfc
«
Последнее редактирование: Февраль 04, 2011, 21:36 от ruzik
»
Записан
Omg
Гость
Re: Переменная объекта
«
Ответ #7 :
Февраль 04, 2011, 21:43 »
Код:
class ABC{
private:
int integer;
public:
int i(void){return integer;}
}
причем тут кутя? А реализовали это приследуя простое правило: инкапсуляция.
«
Последнее редактирование: Февраль 04, 2011, 21:45 от Omg
»
Записан
ieroglif
Гость
Re: Переменная объекта
«
Ответ #8 :
Февраль 05, 2011, 00:57 »
нет смысла устраивать холиворсы.
данный момент действительно является моментом Qt.
оффтоп:
но стоит понимать разницу между указателем на объект и переменной объекта ("->" и ".").
в Qt обращение к переменным объектов реализовано по максимуму через методы, и прямого доступа к переменным обычно нету.
что бы получить text - есть метод text() возвращающий QString.
что бы установить text - есть setText(QString)
так же это связано с Q_PROPERTY, позволяющим оперировать параметрами объекта самыми различными способами (например из QtScript, или через setProperty(..) метод), так что это в итоге становится более выгодно, нежели открывать переменную объекта напрямую.
имхо, конечно
Записан
Sancho_s_rancho
Гость
Re: Переменная объекта
«
Ответ #9 :
Февраль 05, 2011, 11:03 »
Цитировать
С++ сам выучил
В стандарте более 1000 страниц "мелким почерком" и плюс к этому ссылки на другие стандарты (к примеру на "С"). Ежели бы ты "выучил" C++, то простейших вопросов по соглашениям во фреимвоке Qt не было бы.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Переменная объекта
«
Ответ #10 :
Февраль 05, 2011, 11:12 »
ruzik, читай Страуструпа. Раздел про классы. Сам все поймешь.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Blackwanderer
Гость
Re: Переменная объекта
«
Ответ #11 :
Февраль 05, 2011, 12:09 »
Цитата: ieroglif от Февраль 05, 2011, 00:57
данный момент действительно является моментом Qt.
Отнюдь. Это - основы ООП, даже безотносительно к какому-либо языку. Доступ к переменным класса должен идти через методы класса. Это позволяет пользователю не думать о том, как реализована внутренняя структура класса. От Qt тут только принцип именования функций доступа.
Записан
ieroglif
Гость
Re: Переменная объекта
«
Ответ #12 :
Февраль 05, 2011, 14:06 »
Цитата: Черный Странник от Февраль 05, 2011, 12:09
Цитата: ieroglif от Февраль 05, 2011, 00:57
данный момент действительно является моментом Qt.
Отнюдь. Это - основы ООП, даже безотносительно к какому-либо языку. Доступ к переменным класса должен идти через методы класса. Это позволяет пользователю не думать о том, как реализована внутренняя структура класса. От Qt тут только принцип именования функций доступа.
готов признать что я не прав =) давайте только без холировсов? =)
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Переменная объекта
«
Ответ #13 :
Февраль 05, 2011, 15:20 »
Черный Странник
В дотнете доступ идет по имени переменной: string.text, а геттеры/сеттеры зовутся автоматом. То есть там как раз таки пишут string.text = "abc"; Так что не надо тут про основы ООП вспоминать)
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Переменная объекта
«
Ответ #14 :
Февраль 05, 2011, 15:41 »
А дотнете это эталон чтоли?
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...