Название: [Qt-4.2.0 Linux ]Не выполняется конструктор при наследовании
Отправлено: izoomer от Ноябрь 20, 2007, 19:38
Странно , может заработался ... ... есть класс class JDialog : public QDialog { Q_OBJECT public: JDialog(QWidget *parent = 0, JDeviceDispatcher * _device = 0 ,QString msg = 0, const QStringList & list = QStringList() << "Продолжить"); ~JDialog(); uint getCurrentButton(); void setTextMessage( QString ); QString getTextMessage(); private: QListWidget * listButton; QLabel * message; QLabel * icon; _dialogDelegate * delegate; JDeviceDispatcher * _deviceDispatcher;
public slots: void pressMainButton(); };
делаю от него производный класс #ifndef JPROGRESSDIALOG_H #define JPROGRESSDIALOG_H
#include <QTimer> #include <JDialog.h>
class JProgressDialog : public JDialog { Q_OBJECT public: JProgressDialog(QWidget *parent = 0, JDeviceDispatcher * _device = 0 ,QString msg = 0, const QStringList & list = QStringList() << "Повторить" << "Отмена"); ~JProgressDialog(); private :
JDeviceDispatcher * _deviceDispatcher; QTimer progressTimer; QLabel progressText; bool activate; QString message; QTimer * activateProcessTimer; public slots: void pressMainButton();
void response( QByteArray ); void errorResponse( QString ); void cancel(); void retrive(); private slots: void activateInProgress(); };
JProgressDialog::JProgressDialog(QWidget *parent, JDeviceDispatcher * device, QString msg, const QStringList & buttons) : JDialog(parent, device, msg, buttons), _deviceDispatcher (device) , message(msg) { activateProcessTimer = new QTimer(this); connect( activateProcessTimer, SIGNAL( timeout() ), this, SLOT( activateInProgress() ) ); }
Вопрос .. почему не выполняется конструктор класса JProgressDialog ? Где я неграмотен ?
Название: Re: [Qt-4.2.0 Linux ]Не выполняется конструктор при наследовании
Отправлено: Mixolap от Ноябрь 20, 2007, 20:10
А прописал в реализацию конструктора вызов конструктора родителя? JProgressDialog(QWidget *parent = 0, JDeviceDispatcher * _device = 0 ,QString msg = 0, const QStringList & list = QStringList() << "Повторить" << "Отмена"):JDialog(parent,_device,msg = 0,list) {
}
Название: Re: [Qt-4.2.0 Linux ]Не выполняется конструктор при наследовании
Отправлено: izoomer от Ноябрь 20, 2007, 21:56
А прописал в реализацию конструктора вызов конструктора родителя? JProgressDialog(QWidget *parent = 0, JDeviceDispatcher * _device = 0 ,QString msg = 0, const QStringList & list = QStringList() << "Повторить" << "Отмена"):JDialog(parent,_device,msg = 0,list) {
}
прописано конечно .
Название: Re: [Qt-4.2.0 Linux ]Не выполняется конструктор при наследовании
Отправлено: izoomer от Ноябрь 21, 2007, 11:10
Эта , а код создания диалога можно в студию , а в данном случае ошибка в 13 строке ;)
это где же в 13 ? можно носом ткнуть ? Это ФИДО'шный вариант анекдота про Петьку и В.И. ;) Собственно имелось ввиду - без куска создания объекта гадать почему он(кусок) может не работать - можно до бесконечности .... вот конструктор JDialog JDialog::JDialog(QWidget *parent, JDeviceDispatcher * device, QString msg, const QStringList & buttons) : QDialog(parent), _deviceDispatcher(device) { setAttribute(Qt::WA_DeleteOnClose); _deviceDispatcher->setObject(this); setGeometry(0,0,800,600);
QFont fontMessage = QFont("Elektra Medium Pro", 0, QFont::Bold); fontMessage.setStyleStrategy(QFont::PreferAntialias); fontMessage.setPixelSize(20);
message = new QLabel(this);
QPalette messagePalette = message->palette(); messagePalette.setColor( QPalette::WindowText, Qt::white );
message->setGeometry(200,170,400,100); message->setAlignment( Qt::AlignCenter ); message->setWordWrap(true); message->setPalette(messagePalette); message->setFont(fontMessage); message->setText(msg);
listButton = new QListWidget(this);
foreach(QString text, buttons ){ QListWidgetItem * _item = new QListWidgetItem(text, listButton); _item->setSizeHint(QSize(450,40)); }
listButton->setGeometry(175, 300, 450, 100); listButton->setCurrentRow( 0 ); delegate = new _dialogDelegate(); QPalette _palete = listButton->palette(); _palete.setBrush(QPalette::Base, Qt::transparent); listButton->setPalette( _palete ); listButton->setFrameStyle(QFrame::NoFrame); listButton->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); listButton->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); listButton->setItemDelegate(delegate); }
Название: Re: [Qt-4.2.0 Linux ]Не выполняется конструктор при наследовании
Отправлено: pastor от Ноябрь 21, 2007, 11:40
Приведите код как создаеться диалог JProgressDialog
Название: Re: [Qt-4.2.0 Linux ]Не выполняется конструктор при наследовании
Отправлено: izoomer от Ноябрь 21, 2007, 16:02
Приведите код как создаеться диалог JProgressDialog
было в начале поста ... вот есче раз .... JProgressDialog::JProgressDialog(QWidget *parent, JDeviceDispatcher * device, QString msg, const QStringList & buttons) : JDialog(parent, device, msg, buttons), _deviceDispatcher (device) , message(msg) { qDebug() << "конструктор"; activateProcessTimer = new QTimer(this); connect( activateProcessTimer, SIGNAL( timeout() ), this, SLOT( activateInProgress() ) ); activateProcessTimer->start(500); }
Название: Re: [Qt-4.2.0 Linux ]Не выполняется конструктор при наследовании
Отправлено: Вячеслав от Ноябрь 21, 2007, 16:12
Это определение конструктора , а не создание объекта хочеться видеть строчку типа JProgressDialog *d = new JProgressDialog(.........)
Название: Re: [Qt-4.2.0 Linux ]Не выполняется конструктор при наследовании
Отправлено: izoomer от Ноябрь 21, 2007, 17:38
Это определение конструктора , а не создание объекта хочеться видеть строчку типа JProgressDialog *d = new JProgressDialog(.........)
от тормоз я .. как всегда, надо больше отдыхать ... создавал то JDialog в new .... спасибо что ткнули носом
|