我曾尝试使用QX11EmbedContainer在Qt应用程序中嵌入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最后,结果是:

但是,当我试图在minibuffer中编写一些东西时,小部件的大小会折叠,焦点也会丢失:

如果我在小部件(现在变短了)中单击,我可以继续使用emacs而不会出现问题,但我应该调整窗口大小,以便emacs在其他时间像最初一样展开。
问题出在哪里?
发布于 2013-08-19 04:28:39
尝试使用布局。
Here是关于布局管理的Qt5文档。
https://stackoverflow.com/questions/17982831
复制相似问题