微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Emacs嵌入在Qt应用程序中

我试图使用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

最后,结果是:

但是,当我尝试在迷你缓冲区中写入内容时,窗口小部件的大小会崩溃,焦点也会丢失:

如果我在(现在更短的)小部件中点击,我可以继续使用emacs而不会出现问题,但我应该调整窗口大小,以便emacs在原来的其他时间扩展.

问题出在哪儿?

解决方法

尝试使用布局.

Here是关于布局管理的Qt5文档.

原文地址:https://www.jb51.cc/css/215127.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。