【发布时间】:2022-06-11 03:31:33
【问题描述】:
我使用 Glade、GTK 和 Julia 构建了一个 GUI。 我想在我的 GUI 中(在我的窗口/布局中)添加一个绘图,但找不到将绘图添加为小部件的方法。如何使用 Plots.jl 在我的 GUI 中实现绘图?
添加以下内容不会使任何内容出现在我的 GUI 布局中
x = 1:10; y = rand(10, 3) #
plot(x, y)
【问题讨论】:
我使用 Glade、GTK 和 Julia 构建了一个 GUI。 我想在我的 GUI 中(在我的窗口/布局中)添加一个绘图,但找不到将绘图添加为小部件的方法。如何使用 Plots.jl 在我的 GUI 中实现绘图?
添加以下内容不会使任何内容出现在我的 GUI 布局中
x = 1:10; y = rand(10, 3) #
plot(x, y)
【问题讨论】:
如果您可以将 Makie 用于绘图而不是 Plots,CairoMakie 可以绘图到 Gtk 画布:
引用自:https://github.com/JuliaPlots/CairoMakie.jl
using Gtk, CairoMakie, Makie
canvas = @GtkCanvas()
window = GtkWindow(canvas, "Makie", 500, 500)
function drawonto(canvas, scene)
@guarded draw(canvas) do _
resize!(scene, Gtk.width(canvas), Gtk.height(canvas))
screen = CairoMakie.CairoScreen(scene, Gtk.cairo_surface(canvas),
getgc(canvas), nothing)
CairoMakie.cairo_draw(screen, scene)
end
end
scene = heatmap(rand(50, 50)) # or something
drawonto(canvas, scene)
show(canvas); # trig
【讨论】: