Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2013, 15:00   #1
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию связать виджеты из Qt Designer с кодом в Qt Creator.

После выбора в Дизайнере Go to slot.. ->clicked генерируется заготовка:
Код:
void MainWindow::on_pushButton_clicked()
{
}
Хочу хотя бы изменить надпись.
Но откуда взять ссылку на объект pushButton,
чтобы потом
pushButton->setText("pressed");
?
Smogg вне форума Ответить с цитированием
Старый 04.01.2013, 15:49   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Привет!

Вот так надо написать:

Код:
ui->pushButton->setText(tr("pressed"));
В конструкторе окна, например, после строки:
Код:
ui->setupUi(this);
Иван
8Observer8 вне форума Ответить с цитированием
Старый 29.01.2013, 14:14   #3
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

<здесь была какая-то ахинея. удалите пост>
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 29.01.2013, 14:28   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Хочу хотя бы изменить надпись.
Но откуда взять ссылку на объект pushButton,
ерунда какая-то, у тебя уже есть объект pushButton, хочешь изменить текст - пиши
pushButton.setText(...);

Цитата:
ui->pushButton->setText(tr("pressed"));
такой штукой ни разу не пользовался, но то что у ТС сгенерированно автоматически - это автоконнект Qt.

Если ТС обрабатывает сигнал щелчка и в слоте on_pushButton_clicked() хочет изменить надпись - то в Qt есть специальный метод для этого, вроде бы это он: http://doc.qt.digia.com/qt/qobject.html#sender
rrrFer вне форума Ответить с цитированием
Старый 29.01.2013, 19:32   #5
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
ерунда какая-то, у тебя уже есть объект pushButton, хочешь изменить текст - пиши
pushButton.setText(...);
Вот так будет работать:

Код:
void MainWindow::on_pushButton_clicked()
{
    ui->pushButton->setText(tr("Hello"));
}
А вот так нет:
Код:
void MainWindow::on_pushButton_clicked()
{
    pushButton.setText(tr("Hello"))
}
8Observer8 вне форума Ответить с цитированием
Старый 30.01.2013, 08:30   #6
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
А вот так нет:
и не должно, но попробуй так:
Код:
void MainWindow::on_pushButton_clicked() {
    reinterpret_cast<QPushButton*>(sender())->setText(tr("Hello"));
}
rrrFer вне форума Ответить с цитированием
Старый 30.01.2013, 10:57   #7
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Если ты создал класс с формой, то там автоматом должно было быть прописано ui. Через указатель ui идет обращение ко всем объектам на форме.
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимированые виджеты (WPF, .Net 4.0 full) Dj_SheLL Софт 1 04.04.2012 23:50
Рисованные виджеты russian-stalker Общие вопросы C/C++ 4 15.01.2011 23:22
Yahoo виджеты Marsik Софт 0 17.10.2008 13:20
Посоветуйте компоненты виджеты (Widgets) под Delphi tempfolder Общие вопросы Delphi 2 08.09.2008 12:20