Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Founder от Март 02, 2010, 15:17



Название: Проблема с QGroupBox::isChecked()
Отправлено: Founder от Март 02, 2010, 15:17
Код
C++ (Qt)
"dialog.h"
#ifndef DIALOG_H
#define DIALOG_H
 
class QComboBox;
class QGroupBox;
 
class Dialog : public QDialog
{
   Q_OBJECT
 
 
private slots:
   void get();
 
private:
   QGroupBox *groupBox;
   QComboBox *x2ComboBox;
};
 
#endif
 
 
"dialog.cpp"
Dialog::Dialog(QWidget *parent) : QDialog(parent)
{
   QGroupBox *groupBox = new QGroupBox(tr("Использовать второй аргумент"));
   groupBox->setCheckable(true);
   groupBox->setChecked(true);
 
   QLabel *x2Label = new QLabel(tr("Выберите второй аргумент"));
   x2ComboBox = new QComboBox;
   x2ComboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
 
   QVBoxLayout *X2Layout = new QVBoxLayout;
   X2Layout->addWidget(x2Label);
   X2Layout->addWidget(x2ComboBox);
   groupBox->setLayout(X2Layout);
}
 
void Dialog::get() {
   groupBox->isChecked()
}
 


Название: Re: Проблема с QGroupBox::isChecked()
Отправлено: Founder от Март 02, 2010, 15:18
При попытке узнать статус isChecked(), программа выдает ошибку...:(


Название: Re: Проблема с QGroupBox::isChecked()
Отправлено: BRE от Март 02, 2010, 15:26
При попытке узнать статус isChecked(), программа выдает ошибку...:(
Так и должно быть.
groupBox не инициализирован в конструкторе.
На самом деле, ты используешь локальную переменную для хранения указателя:
Код
C++ (Qt)
Dialog::Dialog(QWidget *parent) : QDialog(parent)
{
   QGroupBox *groupBox = ...
 


Название: Re: Проблема с QGroupBox::isChecked()
Отправлено: Founder от Март 02, 2010, 15:30
Так и должно быть.
groupBox не инициализирован в конструкторе.
На самом деле, ты используешь локальную переменную для хранения указателя:
Код
C++ (Qt)
Dialog::Dialog(QWidget *parent) : QDialog(parent)
{
   QGroupBox *groupBox = ...
 
Так я его инициализировал в конструкторе...


Название: Re: Проблема с QGroupBox::isChecked()
Отправлено: Akaiten от Март 02, 2010, 15:42
Тебе же правильно пишет товарищ BRE: groupBox в Dialog::Dialog() и groupBox в Dialog::get() две разные переменные.
Так будет верно:
Код
C++ (Qt)
Dialog::Dialog(QWidget *parent) : QDialog(parent)
{
   groupBox = ...
}
 


Название: Re: Проблема с QGroupBox::isChecked()
Отправлено: Founder от Март 02, 2010, 15:59
Сорри за тупость.:) Спасибо огромное!