Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Проблема в Qt с QHBox.h  (Прочитано 2042 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Stalmak

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Проблема в Qt с QHBox.h
« : 29 Марта 2013, 09:51:54 »
Добрый день! Начал изучать Qt и столкнулся с такой проблемой у меня стоит Qt Creator 2.5.0 в книге пример для qt3 и возникли проблема с библиотекой qhbox.h нашел что ее нужно заменить на q3hbox.h но проблема осталась та же все равно пишет:
Цитировать
...$ qmake -project
...$ qmake age.pro
...$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o age.o age.cpp
age.cpp:2:18: фатальная ошибка: q3hbox: Нет такого файла или каталога
компиляция прервана.
make: *** [age.o] Ошибка 1


код самой программы:

#include <qapplication.h>
#include <q3hbox>
#include <qslider.h>
#include <qspinbox.h>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QHBox *hbox = new Q3HBox(0);
hbox->setCaption("Enter Your Age");
hbox->setMargin(6);
hbox->setSpacing(6);
QSpinBox *spinBox = new QSpinBox(hbox);
QSlider *slider = new QSlider(Qt::Horizontal, hbox);
spinBox->setRange(0, 130);
slider->setRange(0, 130);
QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
spinBox->setValue(35);
app.setMainWidget(hbox);
hbox->show();
return app.exec();
}     

подскажите в чем проблемма

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Проблема в Qt с QHBox.h
« Ответ #1 : 29 Марта 2013, 09:59:29 »
Вы пытаетесь использовать классы из Qt3 в Qt4. Это можно сделать, т.к. в Qt4 есть модуль Qt3Support, но уже вышла Qt5 в которой этого модуля нет и не будет.

Так что лучше всего переписать примеры на Qt4. Вместо QHBox в Qt4 есть похожий класс QHBoxLayout. QLabel подойдёт для хранения надписи.
QHBox

The QHBox class is now only available as Q3HBox in Qt 4. You can achieve the same result as QHBox by creating a QWidget with an horizontal layout:

For example, if you have code like

    QHBox *hbox = new QHBox;
    QPushButton *child1 = new QPushButton(hbox);
    QPushButton *child2 = new QPushButton(hbox);

you can rewrite it as

    QWidget *hbox = new QWidget;
    QPushButton *child1 = new QPushButton;
    QPushButton *child2 = new QPushButton;

    QHBoxLayout *layout = new QHBoxLayout;
    layout->addWidget(child1);
    layout->addWidget(child2);
    hbox->setLayout(layout);

Note that child widgets are not automatically placed into the widget's layout; you will need to manually add each widget to the QHBoxLayout

 

Страница сгенерирована за 0.015 секунд. Запросов: 21.