Описание класса QX11EmbedContainerКласс QX11EmbedContainer предоставляет виджет контейнера XEmbed. Далее... #include <QX11EmbedContainer> Унаследован от: QWidget. От него наследуются: Открытые типы
Открытые функции
Сигналы
Переопределённые защищённые функции
Дополнительные унаследованные члены
Подробное описаниеКласс QX11EmbedContainer предоставляет виджет контейнера XEmbed. XEmbed - это протокол X11, который поддерживает встраивание виджета из одного приложения в другое приложение. Контейнер XEmbed - это графическое место, которое встраивает внешний клиентский виджет. Клиентский виджет - это окно, которое встраивается в контейнер. Когда виджет встроен и контейнер получает фокус ввода, фокус ввода передаётся виджету. Когда виджет достигает окончания цепочки фокуса ввода, фокус ввода передаётся обратно в контейнер. Активация окна, акселераторы, модальность и перетаскивание (XDND) также обрабатываются. QX11EmbedContainer обычно используется для создания панелей или панелей инструментов, в которые внедряются апплеты, или для поглощения приложений X11. При создании панели приложения один контейнерный виджет создаётся на панели инструментов и может или поглотить другой виджет при помощи embed(), или позволить виджету XEmbed встроиться в себя. Контейнерный идентификатор окна X11, получаемый с помощью winId(), должен быть известен клиентскому виджету. После встраивания идентификатор клиентского окна может быть получен при помощи clientWinId(). В следующем примере контейнерный виджет создаётся как основной виджет. Затем вызывается приложение "playmovie", которому передаётся идентификатор окна как параметр командной строки. Программа "playmovie" - это клиентский виджет XEmbed. Виджет встраивает сам себя в контейнер, используя идентификатор окна контейнера. int main(int argc, char *argv[]) { QApplication app(argc, argv); if (app.arguments().count() != 2) { qFatal("Error - expected executable path as argument"); return 1; } QX11EmbedContainer container; container.show(); QProcess process(&container); QString executable(app.arguments()[1]); QStringList arguments; arguments << QString::number(container.winId()); process.start(executable, arguments); int status = app.exec(); process.close(); return status; } После встраивания клиентского виджета контейнер посылает сигнал clientIsEmbedded(). Сигнал clientClosed() посылается при закрытии виджета. Для QX11EmbedContainer вполне возможно встраивание виджетов XEmbed из отличных от Qt инструментариев, таких как GTK+. Произвольные (не XEmbed) виджеты X11 также могут быть встроены, то в этом случае будут потеряны XEmbed-специфичные особенности, такие как активация окна и обработка фокуса ввода при его потере. Эквивалентом QX11EmbedContainer в GTK+ является GtkSocket. Соответствующий виджет KDE 3 называется QXEmbed. Смотрите также QX11EmbedWidget и XEmbed Specification. Описание типов-членовenum QX11EmbedContainer::Error
Описание функций-членовQX11EmbedContainer::QX11EmbedContainer ( QWidget * parent = 0 )Создаёт объект QX11EmbedContainer с указанным родителем parent. QX11EmbedContainer::~QX11EmbedContainer ()Уничтожает QX11EmbedContainer. void QX11EmbedContainer::clientClosed () [signal]Этот сигнал посылается контейнером, когда клиентский виджет закрывается. void QX11EmbedContainer::clientIsEmbedded () [signal]Этот сигнал посылается контейнером, после того как клиентский виджет был встроен. WId QX11EmbedContainer::clientWinId () constЕсли контейнер имеет встроенный виджет, то эта функция возвращает идентификатор окна X11 клиента; в противном случае возвращается 0. void QX11EmbedContainer::discardClient ()Отсоединяет клиента от того, в кого он встроен. Клиент появится как обычное окно на рабочем столе. void QX11EmbedContainer::embedClient ( WId id )Указывает контейнеру встроить окно X11 с идентификатором окна id. Виджет клиента будет размещён сверху всех в окне контейнера, а его размер будет изменён так, чтобы соответствовать размерам контейнера. Идентификатор id должен быть идентификатором окна, управляемого приложением, включающим XEmbed, но это не является обязательным. Если идентификатор id не принадлежит клиентскому виджету XEmbed, то обработка фокуса ввода, активация, акселераторы и другие особенности не будут работать должным образом. Error QX11EmbedContainer::error () constВозвращает последнюю произошедшую ошибку. void QX11EmbedContainer::error ( QX11EmbedContainer::Error error ) [signal]Этот сигнал посылается, когда возникает ошибка при встраивании или взаимодействии с клиентом. Указанная ошибка error описывает возникшую проблему. Смотрите также QX11EmbedContainer::Error. bool QX11EmbedContainer::event ( QEvent * event ) [virtual protected]Переопределено от QObject::event(). void QX11EmbedContainer::paintEvent ( QPaintEvent * e ) [virtual protected]Переопределено от QWidget::paintEvent(). |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |