Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: mugabe от Май 18, 2009, 11:51



Название: popup на базе QAbstractScrollArea
Отправлено: mugabe от Май 18, 2009, 11:51
пытаюсь сделать попап-окошко на базе QAbstractScrollArea, что-то вроде:
Код
C++ (Qt)
class ScrollAreaPopup: public QAbstractScrollArea
{
   Q_OBJECT
public:
   ScrollAreaPopup(QWidget *parent = 0): QAbstractScrollArea(parent) {
     setWindowFlags(Qt::Popup);
   }
};
 

Далее делаю

ScrollAreaPopup *sp = new ScrollAreaPopup(this);
sp->show();

окошко появляется, но при клике вне его на родительском окне оно не исчезает.
Если же наследоваться от QFrame, то все в порядке.

В чем тут загвоздка?


Название: Re: popup на базе QAbstractScrollArea
Отправлено: mugabe от Май 19, 2009, 04:03
Ну, же! Гуру, где вы все? :)


Название: Re: popup на базе QAbstractScrollArea
Отправлено: Rcus от Май 19, 2009, 07:18
/*Медитирует над руководством по OCaml, чувствует себя потерянным для императивного сообщества*/
QAbstractScrollArea не нужен тебе, текстов src/gui/widgets/qabstractscrollarea.cpp прочтение на путь истинный направит. QAbstractScrollArea в QWidget обернув обретешь задуманное.


Название: Re: popup на базе QAbstractScrollArea
Отправлено: mugabe от Май 19, 2009, 12:22
Эти тексты читать пытался я.
Но не смог ум мой скудный познать, что же проблемы вызывает.
QAbstractScrollArea сам наследник QFrame. QFrame работает, QAbstractScrollArea - нет.

В QWidget оборачивать не хотелось бы, но пока что, пожалуй, так и поступлю.


Название: Re: popup на базе QAbstractScrollArea
Отправлено: Rcus от Май 19, 2009, 12:52
Декоратором QAbstractScrollArea является, а потому события направленные ему игнорирует, viewport'у направляет.