我正在尝试导出动态生成的图表,我注意到有些东西没有导出.例如,我的图表有PlotBands,它们是动态的,具体取决于显示的数据.
当我构建我的图表时,我遵循了所有伟大的HighChart示例的标准代码布局,我在文档加载时立即生成了图表.然后在我的代码中,我使用Ajax调用来加载数据并修改标题,绘图带,自定义文本等内容.
问题是在初始图表加载后在图表上修改的任何内容都不会导出到图像或PDF.在Ajax调用期间添加了我的PlotBands.它们无法包含在构建的图表对象中document.load().所以HighCharts很容易忽略它们.
在我的图表中,我想在不同地点的24小时内显示能源使用情况.用户可以选择不同的日期和不同的站点.Plot Bands需要突出显示运行时间,每个站点都有不同的运行时间,这些运行时间都加载了数据.此外,图表标题显示网站名称,副标题显示平方英尺.
此外,我的代码使用HighCharts渲染器text()命令在图形底部绘制一些自定义文本.
我几乎没有功能的导出代码看起来像这样:
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: "ChartContainer",
type: "line",
title: { text: null },
subtitle: { text: null }
}
}
});
function UpdateChart() {
$.ajax({
url: "/my/url.php",
success: function(json) {
chart.addSeries(json[1]);
chart.addSeries(json[2]);
chart.setTitle(json[0].title, json[0].subtitle);
chart.xAxis[0].addPlotBand({ color: "#FCFFB9", from: json[0].OpenInterval, to: json[0].CloseInterval, label: { text: "Operating Hours", verticalAlign: "bottom", y: -5, style: { fontSize: "8pt", color: "gray" } } });
chart.renderer.text("Custom Text", 50, 100); …Run Code Online (Sandbox Code Playgroud) 请告诉我是否有用于Xorg/Linux平台的OSD 屏幕显示程序或技术,它可以以比pango更丰富的方式呈现XML,至少支持align属性和多个span或div元素,因此它可以显示多个列.
到目前为止我检查了什么:
gnome-osd-client呈现XML,但gnome-osd-client提供非常简单的XML pango
osd_cat但它不带任何XML.
navit有一些使用osd的OSM数据XML,但难以理解.
如果没有这样的osd程序,请告诉我
具有不同后端支持的HTML渲染器可以编程为使用OSD显示.
来自在后端使用osd的其他现有包(如navit)的相关源可用于呈现此类XML.
我的问题是我实际上使用了pango,但它不够灵活,无法满足我在多列中显示XML的需求.
前几天我从编译PhantomJS 2.0 源上Linux Debian.它成功编译,遗憾的是网页字体存在问题 - 当渲染为PDF时,您无法选择PDF中的文本,就像图像一样.我正在使用以下CSS代码来设置字体:
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 300;
src: url("/public/styles/fonts/lato-300.ttf"); }
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 400;
src: url("/public/styles/fonts/lato-400.ttf"); }
Run Code Online (Sandbox Code Playgroud)
字体正在渲染,但文本不可选.但是,如果我没有设置任何font-family并且只保留默认浏览器字体,则文本是可选的,一切都很好.
我尝试过使用SVG, WOFF and TTF格式 - 结果是一样的.此问题在1.9中不存在,但由于缺少功能,我无法使用1.9.我也不能将字体文件从1.9分支复制到2.0,因为它们使用的是不同版本的QT/webkit.
我想设置nativeElement的innerText/innerHTML/textContent?
this.render.setValue(this.nativeCloneLi.querySelector('.down .inn'), timeVal);
Run Code Online (Sandbox Code Playgroud)
其中timeVal是一个字符串
正确选择了元素,但setValue似乎根本不起作用
在JTable标头上设置自定义渲染器时,我得到了预期的可视行为(边框,字体,对齐方式......)但我无法获得通常在排序行时出现的LaF排序图标.
这是用于设置自定义标题渲染器的代码:
Enumeration<TableColumn> columns = getColumnModel().getColumns();
while (columns.hasMoreElements())
columns.nextElement().setHeaderRenderer(new XDeliveryTableHeaderRenderer());
Run Code Online (Sandbox Code Playgroud)
这是自定义标题渲染器的摘录:
public class MyTableHeaderRenderer extends JLabel implements TableCellRenderer {
private static final Font labelFont = new Font("Arial", Font.BOLD, 11);
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setFont(labelFont);
setHorizontalAlignment(SwingConstants.CENTER);
setText(value.toString());
setBorder(BorderFactory.createEtchedBorder());
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
任何提示?
我的应用程序由图像背景组成(从后到前),然后是包含3D对象和前2个按钮的glSurfaceView.我希望GLSurfaceView的背景是透明的,并看到背后的图像.
我尝试了两种解决方案,但没有一种令人满意:
mGLSurfaceView = new GLSurfaceView(mContext);
mGLSurfaceView.setEGLContextClientVersion(2);
mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
mGLSurfaceView.setZOrderOnTop(true);
mGLSurfaceView.setRenderer(mRenderer);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我可以看到背景,但3D对象浮动在所有其他布局的顶部,有时隐藏按钮.
mGLSurfaceView = new GLSurfaceView(mContext);
mGLSurfaceView.setEGLContextClientVersion(2);
mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
mGLSurfaceView.setZOrderMediaOverlay(true);
mGLSurfaceView.setRenderer(mRenderer);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我可以看到按钮,但GLSurfaceView不再透明,我看不到图像背景.我已经解析了所有其他主题,但没有一个给我任何令人满意的答案.
我有一个现有的项目,刚刚发现有多个渲染管道可用。我不记得我在创建项目时选择了哪个(如果我选择了)。如何确定我在现有 Unity 项目中使用的渲染管道?
https://docs.unity3d.com/2019.3/Documentation/Manual/render-pipelines.html
我想调用draw()matplotlib Spine 实例的函数。Spines 的文档显示需要draw()一个“渲染器”参数:
draw(self, renderer)
Run Code Online (Sandbox Code Playgroud)
据我所知,渲染器的代码文档不存在。所有将它们作为一个类的引用(例如matplotlib.backend_bases.Renderer在艺术家页面上)都不提供链接。搜索只会在“使用常见问题解答”页面上显示一个渲染器表。这告诉我常见渲染器的名称,但没有告诉我如何获取对渲染器的引用。我在文档中搜索了一个get_renderer()函数,但到目前为止还没有找到任何结果。
如何获取对渲染器的引用以便使用该spines.draw()函数?
我试图弄清楚如何在进程main和BrowserView.
我一直在“简单”的过程和过程ipc之间使用。mainrendererreact renderer page
但现在,使用相同的技术,我没有在 的 中看到收到的消息console,BrowserView据我所知,它的行为似乎与“正常”不同react renderer page。这篇SOF文章似乎证实了我的假设:Electron BrowserView Renderer process vs WebView
在preload我定义中:
declare global {
interface Window {
api: {
electronIpcSend: (channel: string, ...arg: any) => void;
electronIpcOn: (channel: string, listener: (event: any, ...arg: any) => void) => void;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在main我有:
function createWindowTypeC (url_string: string) {
WindowTypeC = new BrowserWindow({
width: 800,
height: …Run Code Online (Sandbox Code Playgroud) 我想从呈现的脚本中显示一个打开对话框。
我从不同来源获得相互矛盾的信息,但据我所知,https: //electronjs.org/docs/api/dialog 上的文档表明我应该能够使用:
const dialog = require('electron').remote.dialog;
dialog.showOpenDialog({ title: '…', defaultPath: '…' })
.then(data=>console.log(data));
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是:
TypeError: dialog.showOpenDialog(...).then is not a function
Run Code Online (Sandbox Code Playgroud)
这表明它dialog.showOpenDialog()没有根据文档返回承诺。文档中的示例也不适用于我。
我知道我可以使用dialog.showOpenDialog(options,callback),并且已经成功使用,但为什么我不能使用.then()?
我还注意到,如果我包含BrowserWindow它挂起的可选参数,那么问题可能会更广泛。
更新:
我已接受@rball 在下面关于版本的回答。
看来我仍在运行 Electron 5.x,而当前版本是 6.x 。文档没有具体提到它,但返回结果似乎在版本之间发生了变化。
更新到新的主要版本不直观。这是我必须做的更新:
npm outdated
npm install electron@latest -g --save
Run Code Online (Sandbox Code Playgroud)
更新 2:
为了完整起见,这里是我用来容纳两个不同版本 Electron 的代码:
if(dialog.showOpenDialog.then)
dialog.showOpenDialog({
title: 'Title',
defaultPath: '…'
})
.then(result=> {
if(result.canceled) return;
var files=result.filePaths;
// process
});
else
dialog.showOpenDialog({
title: 'Title',
defaultPath: '…'
},result=> {
if(result===undefined) …Run Code Online (Sandbox Code Playgroud)