Russian Qt Forum

Qt => Общие вопросы => Тема начата: Zepzep от Сентябрь 08, 2010, 11:14



Название: Помогите новичку
Отправлено: Zepzep от Сентябрь 08, 2010, 11:14
Привет, начал осваивать как сам C++ так и qt. Пробую работать с объектами формы, используя простейшее действие - нажатие кнопки.
Код
C++ (Qt)
void Widget::on_pushButton_clicked()
{
   this->setWindowTitle("Success");
   this->pushButton->setText("Success");
}
Заголовок окна меняется, на изменении текста кнопки программа вылетает.
Вот widget.h
Код
C++ (Qt)
#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
 
QT_BEGIN_NAMESPACE
class QPushButton;
QT_END_NAMESPACE
 
namespace Ui {
   class Widget;
}
 
class Widget : public QWidget
{
   Q_OBJECT
 
public:
   explicit Widget(QWidget *parent = 0);
   ~Widget();
   QPushButton *pushButton;
 
private:
   Ui::Widget *ui;
 
private slots:
   void on_pushButton_clicked();
};
 
#endif // WIDGET_H
Подскажите, где ошибка, или не хватает чего-то?


Название: Re: Помогите новичку
Отправлено: BRE от Сентябрь 08, 2010, 11:19
Я так думаю, что кнопка все таки лежит в Ui::Widget?
А указатель на кнопку определенная в Widget никак не инициализируется?


Название: Re: Помогите новичку
Отправлено: Zepzep от Сентябрь 08, 2010, 11:24
Мм.. я не очень понял.. Кнопку я перетащил на форму в дизайне..
Пожалуйста, примерно опишите, как следовало сделать.


Название: Re: Помогите новичку
Отправлено: BRE от Сентябрь 08, 2010, 11:26
Код
C++ (Qt)
void Widget::on_pushButton_clicked()
{
   this->setWindowTitle("Success");
   this->ui->pushButton->setText("Success");
}
А из класса Widget убери определение указателя:
QPushButton *pushButton;


Название: Re: Помогите новичку
Отправлено: Zepzep от Сентябрь 08, 2010, 11:27
Большое спасибо =)