gtk printOperation 没有对话框

Posted

技术标签:

【中文标题】gtk printOperation 没有对话框【英文标题】:gtk printOperation without dialog 【发布时间】:2021-12-24 09:04:37 【问题描述】:

我正在尝试制作一个没有对话窗口的打印例程,我知道这是使用 PRINT 选项而不是 PRINT_DIALOG 完成的。

Gtk.PrintOperationAction.PRINT_DIALOG
Gtk.PrintOperationAction.PRINT

带有对话框选项的例程相应地工作,这些选项被“print.toFile(...)”函数捕获并在行中读取:

pageSetup.loadFile(Assets.absoluteFilePath('pagesetup.conf'));
printSettings.loadFile(Assets.absoluteFilePath('printsettings.conf'));

它们出现在日志中。

但是什么都没有发生,没有任何事件被触发('begin-print'、'draw-page' 或其他)。

我将 node-gtk 包与 Meteor 一起使用,这在“Assets.absoluteFilePath”(Meteor)函数中得到了证明 以及在camelCase中的所有其他行(node-gtk这样做)

我不相信这些包是问题的原因,在我看来缺少某些东西,因为结果是三个 (3 -> IN_PROGRESS)。

我发现的所有示例都使用 PRINT_DIALOG 例程

botao2.on('clicked', () => 
  let printSettings = new Gtk.PrintSettings();
  let pageSetup = new Gtk.PageSetup();
  pageSetup.loadFile(Assets.absoluteFilePath('pagesetup.conf'));
  printSettings.loadFile(Assets.absoluteFilePath('printsettings.conf'));
  let print = new Gtk.PrintOperation(
    //'allow-async': true,
  );
  print.setUnit(Gtk.Unit.NONE);
  print.setPrintSettings(printSettings);
  print.setDefaultPageSetup(pageSetup);
  print.setUseFullPage(true);
  print.setShowProgress(true);

  console.log( pageSetup, printSettings );

  print.on('begin-print', (printContext, num) => 
    print.nPages = 1;
    width = Math.floor(printContext.getWidth());
    height = Math.floor(printContext.getHeight());
  );

  print.on('draw-page', (printContext) => 
    console.log('draw-page', printContext);
  );

  print.on('status-changed', (...args) => 
    console.log('status-changed', args);
  );

  print.on('done', (res) => 
    console.log('done', res);
  );

  console.log(print.run(Gtk.PrintOperationAction.PRINT));  // always 3 -> IN_PROGRESS
);

【问题讨论】:

【参考方案1】:

这是 GTK4 中存在的一个错误,在 GTK3 中它可以工作,团队已经修复它,目前只是等待获得分发包

​​>

https://gitlab.gnome.org/GNOME/gtk/-/issues/4439

【讨论】:

以上是关于gtk printOperation 没有对话框的主要内容,如果未能解决你的问题,请参考以下文章

动画 gif 图像在我的无模式 Gtk::Dialog 中没有动画

GTK 小部件对话框未关闭

GTK 退出对话框?

有时 GTK 模态对话框不是模态的 --- 错误或功能?

避免关闭 GTK 对话框

GTK3 主题对话框在 Audacity 中呈现纯黑色背景