[Решено] qt4. Пример из книги не идет

Модератор: Модераторы разделов

Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

[Решено] qt4. Пример из книги не идет

Сообщение Voral »

Выкроил время щупаю QT4 и kdevelop. Пока все нравится, заметил много нового и полезного. (Пока я программировал только под винду: консольки да MFC). Первый день, а впечатлений много.

читаю книгу "qt4: программирование gui на C++"
и вот пример, который заканчивается на 36 странице не пашет. Вот код, который по всей видимости имеет значение для моего вопроса. (Конструктор):

Код: Выделить всё

FindDialog::FindDialog(QWidget *parent) : QDialog(parent){
    label = new QLabel(tr("Find &what:"));
    lineEdit = new QLineEdit;
    label->setBuddy(lineEdit);
    caseCheckBox = new QCheckBox(tr("Match &case"));
    backwardCheckBox = new QCheckBox(tr("Search backward"));
    findButton = new QPushButton(tr("&Find"));
    findButton->setDefault(true);
    findButton->setEnabled(false);
    closeButton = new QPushButton(tr("Close"));
    connect(lineEdit,SIGNAL(textChanged(const QString &)),this,SLOT(enableFindButton(const QString &)));
    connect(findButton,SIGNAL(clicked()),this,SLOT(findChecked()));
    connect(closeButton,SIGNAL(clicked()),this,SLOT(close()));
    QHBoxLayout *topLeftLayout = new QHBoxLayout;
    topLeftLayout->addWidget(label);
    topLeftLayout->addWidget(lineEdit);
    QVBoxLayout *leftLayout = new QVBoxLayout;
    leftLayout->addLayout(topLeftLayout);
    leftLayout->addWidget(caseCheckBox);
    leftLayout->addWidget(backwardCheckBox);
    QVBoxLayout *rightLayout = new QVBoxLayout;
    rightLayout->addWidget(findButton);
    rightLayout->addWidget(closeButton);
    rightLayout->addStretch();
    QHBoxLayout *mainLayout = new QHBoxLayout;
    mainLayout->addLayout(leftLayout);
    mainLayout->addLayout(rightLayout);
    setWindowTitle(tr("Find"));
    setFixedHeight(sizeHint().height());
}

компилируется. Но при запуске выдает:
QWidget::setMinimumSize: (/FindDialog) Negative sizes (0,-1) are not possible
QWidget::setMaximumSize: (/FindDialog) Negative sizes (16777215,-1) are not possible

чую, виной строка

Код: Выделить всё

    setFixedHeight(sizeHint().height());

если ее закоментировать. То все компилится. Но открывается пустое окно...
вот как запускается все

Код: Выделить всё

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    FindDialog *dialog = new FindDialog;
    dialog->show();
    return app.exec();
}


Компилирую в kdevelop
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: [Решено] qt4. Пример из книги не идет

Сообщение Voral »

собираю компилирую в консоли
/usr/bin/qmake-qt4 -project
/usr/bin/qmake-qt4 mypro.pro
make

все то же самое



ps а в остальном я просто балдею от КуТе...... А уж использование регекспов в первом же попавшемся учебнике просто.... просто балдею.... :)
Если еще и под виндой все это заработает да еще в связке с Visual Studio это будает ващеее!..... А еще если на Маке..... Все пошел дальше ковырять.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
Atragor
Сообщения: 681
Статус: ...

Re: [Решено] qt4. Пример из книги не идет

Сообщение Atragor »

Предлагаю написать перед setFixedHeight(sizeHint().height()); строчку setLayout(mainLayout);
If you were MEANT to understand it, we wouldn't have called it 'code' © bash.org
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: [Решено] qt4. Пример из книги не идет

Сообщение Voral »

Atragor писал(а):
29.09.2009 00:45
Предлагаю написать перед setFixedHeight(sizeHint().height()); строчку setLayout(mainLayout);


Ура! Заработало! :)
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали: