Próbowałem osadzić emacs w aplikacji Qt przy użyciu QX11EmbedContainer
i działa, ale z dwoma ważnymi wyjątkami. Przede wszystkim, oto kod:Emacs osadzone w aplikacji Qt
#include <QX11EmbedWidget>
#include <QtGui>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QX11EmbedContainer container;
container.show();
container.resize(500, 500);
QProcess* process = new QProcess(&container);
QString executable("emacsclient");
QStringList arguments;
arguments << "--parent-id" << QString::number(container.winId());
process->start(executable, arguments);
int status = app.exec();
process->close();
return status;
}
a linia kompilacja i wykonanie (i poprzedni wyrzucony z serwera emacs):
$ emacs -q --daemon &
// filtered output
$ g++ test.cpp -lQtGui -lQtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4
$ ./a.out
I wreszcie, wynik:
Ale, kiedy lub jeśli spróbuję napisać coś w minibuforze, rozmiar widżetu jest zwinięty, a ostrość jest również tracona:
Gdybym zrobić kliknij w (obecnie krótszy) widget, mogę kontynuować pracę z emacs bez problemów, ale mam rozmiar okna, aby emacs jest rozszerzona innym razem jak pierwotnie.
Gdzie jest problem?