【问题标题】:Emacs embedded in a Qt Application嵌入在 Qt 应用程序中的 Emacs
【发布时间】:2013-08-01 17:07:26
【问题描述】:

我尝试使用QX11EmbedContainer 将 emacs 嵌入到 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;
}

以及编译执行行(以及之前的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 在其他时间像原来一样扩展。

问题出在哪里?

【问题讨论】:

    标签: qt emacs embed


    【解决方案1】:

    尝试使用布局。

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

    【讨论】:

      猜你喜欢
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      • 1970-01-01
      相关资源
      最近更新 更多