qt - 嵌入在 Qt 应用程序中的 Emacs

标签 qt emacs embed

我尝试使用 QX11EmbedContainer 在 Qt 应用程序中嵌入 emacs , 并且有效,但有两个重要的异常(exception)。首先,这里是代码:

#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 client embedded in Qt

但是,当我尝试在迷你缓冲区中写入内容时,小部件的大小会折叠,并且焦点也会丢失:

other capture

如果我在(现在更短的)小部件中单击,我可以继续使用 emacs 没有问题,但我应该调整窗口大小以便 emacs 像原来一样在其他时间扩展。

问题出在哪儿?

最佳答案

尝试使用布局。

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

关于qt - 嵌入在 Qt 应用程序中的 Emacs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17982831/

相关文章:

qt - 使用QWebEngine渲染图像

c++ - Qtsql 中的参数计数不匹配

javascript - Youtube 嵌入的自动全屏

c++ - 将 QString 转换为其他类型

emacs - 在 emacs 中重新绑定(bind)光标移动

emacs - Arduino Emacs 开发

testing - 如何编写一个简单的伪汇编程序?

browser - 嵌入在浏览器中的Applet嵌入在JFrame中

javascript - 有什么方法可以控制 EMBED 代码视频吗?

c++ - 如何从 C++/Qt Linux 应用程序逐行读取 FIFO/命名管道?