Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > ругается на setMainWidget


Автор: shuttle 30.1.2009, 07:36
текст программы 

Код

QApplication app(argc, argv);
QLabel *label = new QLabel("Hello, Qt!", 0);
app.setMainWidget(label);


при компиляции выводит ошибу
'setMainWidget' : is not a member of 'QApplication

хотя в assistant  говорится что setMainWidget входит в состав  QApplication. В чем может быть проблема.

Автор: W4FhLF 30.1.2009, 08:50
Наверное поэтому:

Код

// qt-win-opensource-src-4.4.3\src\gui\kernel\qapplication.h
#ifdef QT3_SUPPORT
    static QT3_SUPPORT QWidget *mainWidget();
    static QT3_SUPPORT void setMainWidget(QWidget *);
#endif

Автор: pan2004 30.1.2009, 08:53
Цитата(shuttle @  30.1.2009,  07:36 Найти цитируемый пост)
setMainWidget

А зачем это вообще сейчас нужно? Просто показывай лейбл label->show() и делай app.exec()
Вот нав и сделали ее deprecated

Автор: Acer 30.1.2009, 09:46
shuttle, setMainWidget нужно использовать в том случае, если у тебя есть основной виджет, на который ты добавляешь еще виджеты.
Например:
Код

QWidget *wdg_main = new QWidget;
QLabel *wdg_lb = new QLabel;
wdg_main->setMainWidget( wdg_lb );
wdg_main->setVisible( true );

Автор: Любитель 31.1.2009, 22:30
Acer, неправильно. setMainWidget в принципе не нужно указывать. Это устаревший метод из Qt3. W4FhLF же цитировал код!

Автор: Acer 1.2.2009, 00:04
Любитель, а если человек использует Qt3? Я просто привел пример, в котором используется метод setMainWindow().

Автор: Любитель 1.2.2009, 13:47
Если б он использовал Qt3, проблемы, описанной выше не было бы ;) Это раз.
Второе - Qt3 есть смысл использовать только в целях совместимости.
И третье - не Window, а Widget.

Автор: Acer 1.2.2009, 23:02
Цитата(Любитель @ 1.2.2009,  13:47)
Если б он использовал Qt3, проблемы, описанной выше не было бы ;) Это раз.
Второе - Qt3 есть смысл использовать только в целях совместимости.
И третье - не Window, а Widget.

извиняюсь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)