Существует приложение Qt. GL-окно, созданное в этом приложении, вызывая функцию XCreateWindow, и я не могу ее редактировать. Мне нужно поставить Xwindow в QWidget внутри моих приложений Qt.Окно X11 не помещается в QWidget для встраивания в приложение Qt
В документации:
void QWidget::create (WId window = 0, bool initializeWindow = true,
bool destroyOldWindow = true) [protected]
Создает новое окно виджета, если окно 0, в противном случае устанавливает окно виджета s в window.Initializes окно задает геометрию и т.д.), если initializeWindow верно. Если initializeWindow является ложным, инициализация не выполняется. Этот параметр имеет смысл только в том случае, если окно является допустимым окном.
...
Для проверки результата функции QWidget :: создать там следующий код:
class ParentWindow : public QWidget
{
Q_OBJECT
public:
ParentWindow(WId id)
{
create(id);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton* button = new QPushButton("MEGA BUTTON");
button->show();
ParentWindow w(button->winId());
w.show();
return a.exec();
}
Когда приложение запуска одиночного пустое окно появляется. Хотя ожидаемое окно содержит кнопку (или кнопку). Как я могу поместить окно X11 в свой QWidget?
Спасибо, но дело в том, что мне нужно x-окно, встроенное в QWidget. Это точно мой вопрос. – babutta
Ваши объяснения сбивают с толку. Вы, похоже, хотите создать виджет Qt и поместить в него кнопку Qt, тогда вы хотите сделать что-то еще. Не совсем ясно, что именно. Вы хотите повторно отобразить существующее окно toplevel X11 и сделать его дочерним элементом нового окна виджета Qt? –
Да, я хочу это сделать. Извините меня за смутное объяснение. Мой английский недостаточно хорош =) – babutta