gpt4 book ai didi

linux - 如何使用 Ada 代码关闭图形窗口/小部件?

转载 作者:行者123 更新时间:2023-12-04 07:55:48 24 4
gpt4 key购买 nike

我正在运行用 Ada 编写的示例代码。该代码的任务是使用 plplot 库绘制一个函数。它设置为使用 xcairo 驱动程序。当我在 linux (opensuse) 中执行程序时,程序会显示终端 shell,然后显示另一个窗口 (widget-xcairo?),并以图形方式显示绘图。如何在不关闭正在运行的终端 shell 的情况下使用 ada 命令关闭另一个窗口?我可以用鼠标单击关闭图标来关闭另一个窗口,但我想知道如何使用 ada 代码关闭另一个窗口以进行编程。用于 PLplot 的 ada 绑定(bind)中的命令 End_PLplot 具有 plend 命令,该命令可能会结束 plplot 执行但不会关闭另一个窗口。下面是示例代码,

 with
Ada.Strings,
Ada.Strings.Unbounded,
PLplot_Auxiliary,
PLplot_Standard;

use
Ada.Strings,
Ada.Strings.Unbounded,
PLplot_Auxiliary,
PLplot_Standard;


procedure speedplot is
driver : Unbounded_String;
x, y : Real_Vector(0 .. 100);
x_Min, y_Min : constant := 0.0;
x_Max : constant := 1.0;
y_Max : constant := 100.0;
begin
-- Prepare data to be plotted.
for i in x'range loop
x(i) := Long_Float(i) / Long_Float(x'length - 1);
y(i) := y_Max * x(i)**2;
end loop;

-- Parse and process command line arguments.

driver := To_Unbounded_String("xcairo");
Set_Device_Name(To_String(driver));

-- Initialize plplot.
Initialize_PLplot;

-- Create a labelled box to hold the plot.
Set_Environment(x_Min, x_Max, y_Min, y_Max,
Justification => Not_Justified,
Axis_Style => Linear_Box_Plus);
Write_Labels
(X_Label => "x",
Y_Label => "y=100 x#u2#d",
Title_Label => "Simple PLplot demo of a 2D line plot");

-- Plot the data that was prepared above.
Draw_Curve(x, y);

-- Close PLplot library.
End_PLplot; -- <-- problem is here. Would like to continue running code below this line.
end speedplot;

最佳答案

我通过在现有代码中添加代码行 Set_Pause(False) 来解决它,

 -- Stop waiting for user response
Set_Pause(False);
-- Close PLplot library.
End_PLplot;

关于linux - 如何使用 Ada 代码关闭图形窗口/小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66709482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com