Russian Qt Forum
Март 29, 2024, 14:49
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Управление объектом
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Управление объектом (Прочитано 10856 раз)
ruzik
Гость
Управление объектом
«
:
Февраль 09, 2011, 14:52 »
Здравствуйте, не подскажите как сделать
Я в конструкторе класса объявляю lineEdit, далее мне нужно через событие сделать с этим объектом что-то, но в событии он не определяется,
и его ни как не передашь, ведь это событие, можно конечно объявить глобальный указатель на этот объект, но есть ли более удачное решение данной проблемы
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Управление объектом
«
Ответ #1 :
Февраль 09, 2011, 14:55 »
Что-то вообще ничего не понятно. Давай подробнее и с кодом.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ruzik
Гость
Re: Управление объектом
«
Ответ #2 :
Февраль 09, 2011, 15:43 »
Для начала у меня есть класс
Код:
class MyBr : public QMainWindow, public Ui::MyBrClass
{
Q_OBJECT
public:
MyBr(QWidget *parent = 0, Qt::WFlags flags = 0);
~MyBr();
public slots:
void load(QString a);
signals:
void FormResize();
protected:
void resizeEvent( QResizeEvent* );
};
В его конструкторе я объявляю кучу виджетов и тп
Код:
MyBr::MyBr(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
setupUi(this);
this->setWindowTitle(tr("Web-Rizek 2.0"));
QPushButton * PrevButton = new QPushButton;
PrevButton->setText("<-");
PrevButton->setFixedWidth(30);
PrevButton->setToolTip(tr("Go back"));
QPushButton * Refresh = new QPushButton;
Refresh->setText("(%)");
Refresh->setFixedWidth(30);
Refresh->setToolTip(tr("Refresh"));
QPushButton * NextButton = new QPushButton;
NextButton->setText("->");
NextButton->setFixedWidth(30);
NextButton->setToolTip(tr("Go next"));
QLineEdit * Address = new QLineEdit;
Address->setFixedWidth(400);
Address->setToolTip(tr("Adress of your site"));
QPushButton * Go = new QPushButton;
Go->setText(tr("Go!"));
Go->setFixedWidth(35);
Go->setToolTip(tr("Go"));
QPushButton * StopButton = new QPushButton;
StopButton->setText("X");
StopButton->setFixedWidth(30);
StopButton->setToolTip(tr("Stop"));
//*******************
mainToolBar->addWidget(PrevButton);
mainToolBar->addWidget(Refresh);
mainToolBar->addWidget(NextButton);
mainToolBar->addWidget(StopButton);
mainToolBar->addWidget(Address);
mainToolBar->addWidget(Go);
//*******************
//==========================
connect(PrevButton, SIGNAL(clicked()), webView , SLOT(back()));
connect(NextButton, SIGNAL( clicked()), webView , SLOT(forward()));
connect(Refresh , SIGNAL(clicked()), webView, SLOT(Refresh()));
connect(StopButton, SIGNAL(clicked()), webView, SLOT(stop()));
connect(Go , SIGNAL(clicked()), this , SLOT(load()));
//==========================
}
И мне надо в
void MyBr::resizeEvent( QResizeEvent* )
сделать некоторые действия с Address, который объявлен в конструкторе, но resizeEvent- это событие, и ему не получится передать указатель на Address
Записан
Fat-Zer
Гость
Re: Управление объектом
«
Ответ #3 :
Февраль 09, 2011, 15:56 »
из того, что сразу бросается в глаза:
1) зачем множественное наследование...
2) покажите как определяете resizeEvent, раз уж в нём проблемма
3) объявите Address членом класса
4) не понятно зачем вам Ui, если вы всё равно дезайнером не пользуетесь
ещё замечанеий набросать можно наверное несколько штук, если присмотреться... И после таких вопросов/такого кода обычно посылают читать книжки по ООП/С++...
«
Последнее редактирование: Февраль 09, 2011, 16:02 от Fat-Zer
»
Записан
ruzik
Гость
Re: Управление объектом
«
Ответ #4 :
Февраль 09, 2011, 16:01 »
1)Так в книжке написано
2)В классе
protected:
void resizeEvent( QResizeEvent* );<- просто объвление
Расписывание:
void MyBr::resizeEvent( QResizeEvent* )
{
emit FormResize();
webView->setFixedWidth(this->width());
webView->setFixedHeight(this->height()-mainToolBar->height());
}
3)Я в конструкторе его объявляю QLineEdit * Address = new QLineEdit;
4)Далеко не все, процентов 40% виджетов, а в будущем больше, как раз в дизайнере, просто я не знаю как там добавить кнопки в toolbar, вот и решил что добавлю на уровне кода)
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Управление объектом
«
Ответ #5 :
Февраль 09, 2011, 16:13 »
Цитата: Fat-Zer от Февраль 09, 2011, 15:56
ещё замечаней набросать можно штуки 3-7... И после таких вопросов/такого кода обычно посылают читать книжки по ООП/С++...
Помню поставил я новый компилятор. Смотрю есть опция типа "проверить на грамотность С++" (выливает в текстовый файл). Ну я (бодро) ее включил. Мдааа..
Я понял что не стоит мнить себя асом, тем более кого-то "посылать" - на мою "крутизну" найдется еще круче.
По существу:
- множественное наследование не криминал, но (в данном случае) Ui::MyBrClass не может быть потомком QObject - обычно это сужает возможности
- проще объявить (m)Address членом класса - раз уж планируется с ним что-то делать
Записан
ruzik
Гость
Re: Управление объектом
«
Ответ #6 :
Февраль 09, 2011, 16:17 »
Спасибо, наверно так и сделаю, раз уж нельзя сделать по-другому при моем уровне знаний
Записан
Fat-Zer
Гость
Re: Управление объектом
«
Ответ #7 :
Февраль 09, 2011, 16:19 »
3) заметил, поправился, но вовремя не успел...
//оффтоп
Цитата: Igors от Февраль 09, 2011, 16:13
Помню поставил я новый компилятор. Смотрю есть опция типа "проверить на грамотность С++" (выливает в текстовый файл). Ну я (бодро) ее включил. Мдааа..
Я понял что не стоит мнить себя асом, тем более кого-то "посылать" - на мою "крутизну" найдется еще круче.
А что за компилятор такой?
«
Последнее редактирование: Февраль 09, 2011, 16:21 от Fat-Zer
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Управление объектом
«
Ответ #8 :
Февраль 09, 2011, 16:24 »
Цитата: ruzik от Февраль 09, 2011, 16:17
Спасибо, наверно так и сделаю, раз уж нельзя сделать по-другому при моем уровне знаний
Не стоит "посыпать голову пеплом" :-) Мое личное/субъективное мнение - увлекаться дизайнером не нужно (на первых порах). Создать все "руками" не так сложно как может сначала показаться, зато все в Ваших руках и Вы хорошо понимаете что сделано.
Записан
brankovic
Гость
Re: Управление объектом
«
Ответ #9 :
Февраль 10, 2011, 01:25 »
Цитата: Fat-Zer от Февраль 09, 2011, 16:19
А что за компилятор такой?
ставлю полтиник, что от микрософт.. их хлебом не корми, дай других попроверять
Я тоже однажды обновил компилятор, и пошёл собирать какую-то программу с -Wall -Werror, как обычно. И вдруг он мне выдаёт кучу варнингов, они превращаются в ошибки и ничего не компилится. Оказывается, теперь по мнению gcc "предпочтительно ставить скобки в выражении, где присутствуют || и &&". А я всегда знал приоритет операций и скобки не ставил. А теперь должен почему-то. Вот так из-за полезных и нужных "проверок на грамотность" страдают грамотные люди..
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Управление объектом
«
Ответ #10 :
Февраль 10, 2011, 14:21 »
Цитата: brankovic от Февраль 10, 2011, 01:25
ставлю полтиник, что от микрософт.. их хлебом не корми, дай других попроверять
Гоните полтинник - проиграли
Не микрософт и не gcc.
Цитата: brankovic от Февраль 10, 2011, 01:25
Я тоже однажды обновил компилятор, и пошёл собирать какую-то программу с -Wall -Werror, как обычно. И вдруг он мне выдаёт кучу варнингов, они превращаются в ошибки и ничего не компилится. Оказывается, теперь по мнению gcc "предпочтительно ставить скобки в выражении, где присутствуют || и &&". А я всегда знал приоритет операций и скобки не ставил. А теперь должен почему-то. Вот так из-за полезных и нужных "проверок на грамотность" страдают грамотные люди..
Нет, этот мне указал все "по делу". Ну кое-где конечно "зависит от вкуса как писать", но с подавляющим большинством его замечаний я вынужден был согласиться.
Записан
brankovic
Гость
Re: Управление объектом
«
Ответ #11 :
Февраль 11, 2011, 08:57 »
Цитата: Igors от Февраль 10, 2011, 14:21
Цитата: brankovic от Февраль 10, 2011, 01:25
ставлю полтиник, что от микрософт.. их хлебом не корми, дай других попроверять
Гоните полтинник - проиграли
Не микрософт и не gcc.
ооо.. тогда что-же? Для Borland это не в их стиле вроде. Ваком и так еле-еле жил, но может они? Или.. о нет, неужели КАМЯУ?!! В общем пруфлинк в студию..
Записан
Fat-Zer
Гость
Re: Управление объектом
«
Ответ #12 :
Февраль 11, 2011, 09:06 »
ещё версия - icc
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Управление объектом
«
Ответ #13 :
Февраль 11, 2011, 11:10 »
Цитата: Fat-Zer от Февраль 11, 2011, 09:06
ещё версия - icc
Это правильный ответ
Цитата: brankovic от Февраль 11, 2011, 08:57
В общем пруфлинк в студию..
Ну я не обещал Вам чего-то подавать/доказывать
Триал версия доступна (под все платформы) - скачивайте, ставьте, смотрите. Не пожалеете - ВЕЩЬ!
Записан
brankovic
Гость
Re: Управление объектом
«
Ответ #14 :
Февраль 11, 2011, 23:36 »
Цитата: Igors от Февраль 11, 2011, 11:10
Цитата: Fat-Zer от Февраль 11, 2011, 09:06
ещё версия - icc
Это правильный ответ
Какое разочарование. Нет, я догадываюсь, что на свете много идиотов, верю даже, что и в интел их достаточно. Но грустно как-то всё же..
Цитата: Igors от Февраль 11, 2011, 11:10
Ну я не обещал Вам чего-то подавать/доказывать
Триал версия доступна (под все платформы) - скачивайте, ставьте, смотрите. Не пожалеете - ВЕЩЬ!
Да что вы, уважаемый
Igors
, какие могут быть к Вам претензии или требования. Только хотел узнать "правильный ответ", но выразился не совсем корректно, извините.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...