मैंने QX11EmbedContainer
का उपयोग कर एक क्यूटी अनुप्रयोग में emacs को एम्बेड करने का प्रयास किया है, और काम करता है लेकिन दो महत्वपूर्ण अपवाद के साथ।एक क्यूटी अनुप्रयोग में एम्बेडेड Emacs
#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;
}
और संकलन और निष्पादन लाइन (और पिछले 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
और अंत में, परिणाम:
सबसे पहले, यहाँ कोड है
लेकिन, जब मैं मिनीबफर में कुछ लिखने की कोशिश करता हूं, तो विजेट का आकार गिर जाता है, और फोकस भी खो जाता है:
अगर मैं (अब कम) विजेट में क्लिक करें, मैं समस्याओं के बिना Emacs के साथ काम जारी रख सकते हैं, लेकिन मैं Emacs करने के लिए विंडो का आकार बदलने चाहिए और समय का विस्तार किया है के रूप में मूल रूप से।
समस्या कहां है?