FLTK - FL_Tooltip - 修改工具提示大小
Posted
技术标签:
【中文标题】FLTK - FL_Tooltip - 修改工具提示大小【英文标题】:FLTK - FL_Tooltip - Modify tooltip size 【发布时间】:2020-07-30 08:02:41 【问题描述】:我正在使用 FLTK 1.3.5(在 Mac 上,Catalina 10.15.5,clang 版本 11.0.3),我想拥有带有 tooltips 的小部件,我想为其决定边距和其他选项。特别是,我想在margin_width
和wrap_width
上工作,所以我尝试了以下方法
#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Tooltip.H>
#include <FL/Fl_Box.H>
int main(int argc, char **argv)
Fl_Window *G_win = 0;
G_win = new Fl_Window(300,300,"Test");
Fl_Box* B;
B = new Fl_Box(10,10,280,280,"Test Tooltip");
Fl_Tooltip::margin_width(12);
B->tooltip("I want a huge tooltip!");
G_win->end();
G_win->show(argc, argv);
return Fl::run();
但我收到此错误:
error: too many arguments to function call, expected 0, have 1
Fl_Tooltip::margin_width(12);
~~~~~~~~~~~~~~~~~~~~~~~~ ^~
/usr/local/include/FL/Fl_Tooltip.H:95:3: note: 'margin_width' declared here
static int margin_width() return 3;
仔细查看Fl_Tooltip.H后,如果FLTK_ABI_VERSION
变量大于等于10301(头文件第81行),似乎我要使用的功能是启用的。我检查了文件 Enumerations.H 并检查了即使我有 FLTK 1.3.5 FLTK_ABI_VERSION
是 10300。
实际上,FLTK_ABI_VERSION
被定义为FL_MAJOR_VERSION*10000 + FL_MINOR_VERSION*100
,因此它将始终低于 10301,在我的情况下,FL_MAJOR_VERSION
等于 1 FL_MINOR_VERSION
等于 3。
此外,同一个头文件说实际上FLTK_ABI_VERSION
已被弃用,它将被FL_API_VERSION
替换,这正是10305,对应于FLTK 1.3.5。
这是原始代码中的错误还是我遗漏了什么?
【问题讨论】:
您是在 Linux 还是 Windows 上构建。比较适用于 Linux,但不适用于 Windows @cup 我在 Mac 上工作:我忘了在问题中直接提到它。 这可能是Mac和Windows上存在的问题,但gcc上没有。您可能需要使用fltk.org/applications/str.php 来提高它 【参考方案1】:我不了解 Mac,但要让它在 MS 编译器上工作
#if FLTK_ABI_VERSION >= 10301
应该改为
#if (FLTK_ABI_VERSION >= 10301)
在 Mac 上试试。如果有效,请向https://www.fltk.org/applications/str.php报告错误并修复,并记得指定Mac和Windows。
我查看了回归测试 - 我找不到它的测试。我怀疑这个功能只在 Linux 上测试过
编辑
您还需要修改 FL_Tooltip.cxx 并重建 FLTK 库
编辑
作为参考,请查看 README.abi-version.txt。添加括号后,重新配置
./configure --with-abiversion=10305
然后进行安装
【讨论】:
我试过但它不起作用,我得到了同样的错误。我也尝试写#if FLTK_ABI_VERSION >=0
,但它似乎也不起作用,我收到use of undeclared identifier 'margin_width_'; did you mean 'margin_width'? static int margin_width() return margin_width_;
之类的错误。我会报告这个错误,我想检查这里是否有人知道解决方案。感谢您的帮助!
我按照您的建议尝试了括号,并且在问题中报告了相同的错误。然后,我尝试使用0
(带和不带括号)修改if
语句,但我得到关于变量名称的错误:似乎带有最后下划线的名称,如margin_width_
没有声明。跨度>
它们在 FL_tooltip.cxx 中声明 - 它也有需要修改的 if 语句。然后你需要重建库
我会重新下载库并按照您的建议进行修改!
我按照你的建议尝试了但是没有成功:我会尝试在FLTK的网站上报告这个错误,即使他们写的是他们正在专注于开发1.4版本...... 以上是关于FLTK - FL_Tooltip - 修改工具提示大小的主要内容,如果未能解决你的问题,请参考以下文章
如何构建 FLTK 以与 Netbeans (Windows) 一起使用