关键词:
【中文标题】FLTK 子窗口未在 Linux 上重绘【英文标题】:FLTK child window not redrawing on Linux 【发布时间】:2016-08-28 05:39:25 【问题描述】:我正在开发一个希望发布的不错的开源项目,但是我遇到了一些问题,即子窗口在损坏后无法重绘。详情请看这张图:
这是我用来显示这个的代码:
void showMessageWindow (std::string strMessage, std::string strTitle)
Fl_Window* msgWin = new Fl_Window(400, 255, NULL);
if (strTitle == "")
msgWin->label("Window Title");
msgWin->box(FL_BORDER_FRAME);
msgWin->set_non_modal();
Fl_PNG_Image* img = new Fl_PNG_Image("/home/obaker/Pictures/info-icon.png");
Fl_Box* ibox = new Fl_Box(20, 20, 48, 48);
ibox->image(img);
Fl_Multiline_Output* mOut = new Fl_Multiline_Output(90, 20, 275, 175, NULL);
mOut->box(FL_NO_BOX);
mOut->wrap(true);
mOut->readonly(true);
mOut->cursor_color(FL_BACKGROUND_COLOR);
mOut->value(strdup(strMessage.c_str()));
Fl_Button* btn = new Fl_Button(150, 210, 100, 35, "OK");
btn->box(FL_GTK_UP_BOX);
btn->shortcut(FL_Enter);
btn->callback(msgBoxClose, msgWin);
msgWin->add(ibox);
msgWin->add(mOut);
msgWin->add(btn);
msgWin->show();
我曾尝试使用 Fl_Double_Window 代替 Fl_Window,但它看起来更糟:
虽然看起来“前卫”和“酷”,但它不适合我的项目。 :-)
我正在 Debian Linux 8、64 位、AMD Radeon HD 6670 显卡、8 GB RAM 上进行开发和测试。 Debian 提供的 FLTK 版本是 1.3 (1.3.2-6)。
父窗口是一个 Fl_Double_Window,它自己重绘就好了。
有什么人可以推荐强制这个子窗口在损坏时重新绘制自己?
提前感谢您! :-)
【问题讨论】:
【参考方案1】:在 Chris 在 FLTK 论坛上的指导下,我能够解决这个问题。
必要的更改是:
msgWin->box(FL_BORDER_BOX)
而不是
msgWin->box(FL_BORDER_FRAME)
“用于输出的 FL_NO_BOX 也可能导致绘图伪影。更好 将输出背景颜色设置为窗口背景颜色:"
mOut->box(FL_FLAT_BOX);
mOut->color(msgWin->color());
感谢您的所有帮助! :-)
【讨论】:
Expo AuthSession 新窗口未在 Web 上重定向
】ExpoAuthSession新窗口未在Web上重定向【英文标题】:ExpoAuthSessionnewwindownotredirectingonWeb【发布时间】:2021-10-2405:09:44【问题描述】:我们正在使用AuthSession.startAsync在我们的应用程序中启动身份验证过程,该过程在iOS和Android上运行... 查看详情
带有按钮回调的新窗口未在 fltk 中打开
】带有按钮回调的新窗口未在fltk中打开【英文标题】:Newwindownotopeninginfltkwithbuttoncallback【发布时间】:2017-01-2314:04:25【问题描述】:我创建了一个按钮,单击该按钮时将通过回调打开一个新窗口,但是当单击此按钮时没有任何... 查看详情
c++ FLTK 图像重绘
】c++FLTK图像重绘【英文标题】:c++FLTKImageredraw【发布时间】:2014-10-2305:50:46【问题描述】:我正在制作一个简单的FLTK应用程序(在linux中),它需要在FL_Window中显示PNG图像。下一段代码:Fl_PNG_Image*pngImg;Fl_Box*boxImage;boxImage=newFl_Bo... 查看详情
当来自锁屏 iPhone 时在 didreceivelocalnotification 上重绘 GUI
】当来自锁屏iPhone时在didreceivelocalnotification上重绘GUI【英文标题】:redrawGUIondidreceivelocalnotificationwhencomefromlockscreeniphone【发布时间】:2011-04-2318:33:00【问题描述】:如何防止我的GUI在收到UILocalNotification后从锁定屏幕返回时重绘... 查看详情
自定义 UITableViewCell 不会在 setNeedsDisplay 上重绘
】自定义UITableViewCell不会在setNeedsDisplay上重绘【英文标题】:CustomUITableViewCellwon\'tredrawonsetNeedsDisplay【发布时间】:2010-05-1922:46:33【问题描述】:我创建了一个自定义UITableViewCell类,其中包含一个UIButton、一个UIImage和两个UILabels... 查看详情
是否可以使用标准 C++ 线程而不是 FLTK 超时来更新窗口?
】是否可以使用标准C++线程而不是FLTK超时来更新窗口?【英文标题】:IsitpossibletousestandardC++threadsinsteadofFLTKtimeoutstoupdatewindow?【发布时间】:2017-12-0220:04:47【问题描述】:我需要创建一个无需用户交互即可自行完成的简单动画。... 查看详情
FLTK 值更改和重绘等到回调之后:有啥办法吗?
】FLTK值更改和重绘等到回调之后:有啥办法吗?【英文标题】:FLTKvaluechangeandredrawwaitsuntilaftercallback:anywayaroundthis?FLTK值更改和重绘等到回调之后:有什么办法吗?【发布时间】:2014-02-2601:43:32【问题描述】:我是GUI新手,正在... 查看详情
SwiftUI:在设备方向上重绘会使计时器无效
】SwiftUI:在设备方向上重绘会使计时器无效【英文标题】:SwiftUI:RepaintonDeviceorientationinvalidatesTimer【发布时间】:2020-04-1419:15:52【问题描述】:我正在使用SwiftUI制作秒表。出于设计目的,我在方向更改时重新绘制UI,但这会使我... 查看详情
如何使用 FLTK 在 Windows、Mac OS X 和 Linux 中使窗口透明?
】如何使用FLTK在Windows、MacOSX和Linux中使窗口透明?【英文标题】:HowcanImakeawindowtransparentinWindows,MacOSX,andLinuxusingFLTK?【发布时间】:2014-11-0105:10:48【问题描述】:我正在使用FLTK1.3.2用C++编写应用程序。这是我用来在Windows7或8上使... 查看详情
Swift 4 - setNeedsDisplay 和 layoutIfNeeded 不在 self.UIView 上重绘 UILabel
】Swift4-setNeedsDisplay和layoutIfNeeded不在self.UIView上重绘UILabel【英文标题】:Swift4-setNeedsDisplayandlayoutIfNeedednotredrawingUILabelonself.UIView【发布时间】:2018-01-2905:54:52【问题描述】:基本上,我有一个自定义UILabel子类,它根据变量设置标... 查看详情
iOS:如何让后台线程在主线程上重绘视图
】iOS:如何让后台线程在主线程上重绘视图【英文标题】:iOS:Howtogetbackgroundthreadtoredrawviewonmainthread【发布时间】:2012-11-2121:21:06【问题描述】:我的应用程序将查询数据库50次,然后通过将正确的UIImageView添加到另一个UIImageView... 查看详情
FLTK 模态窗口
】FLTK模态窗口【英文标题】:FLTKModalWindows【发布时间】:2012-02-2819:27:44【问题描述】:我有一个FLTK程序,它有一个基本的GUI,偶尔会弹出一个通知窗口(一个与win32函数“MessageBox”非常相似的自定义函数)。该窗口在程序启动... 查看详情
页面未在来自 iOS 的 URLRequest 上重定向
】页面未在来自iOS的URLRequest上重定向【英文标题】:PageisnotredirectingonURLRequestfromiOS【发布时间】:2017-07-2422:18:58【问题描述】:我正在尝试使用Swift从iOS发出URLRequest,并通过url将一些数据发送到一种PHP服务器。leturl=URL(string:"http... 查看详情
使 UIImage 在@IB_Designable 的新位置上重绘
】使UIImage在@IB_Designable的新位置上重绘【英文标题】:MakingUIImageredrawonnewpositionon@IB_Designable【发布时间】:2016-11-0702:04:53【问题描述】:我正在创建这个IB_Designable类。它就像一个滑块。见图片。这两个元素都是用可伸缩的UIImages... 查看详情
通过 DLL 将子窗口添加到 Metatrader4 的图表 - 闪烁(不重绘)
】通过DLL将子窗口添加到Metatrader4的图表-闪烁(不重绘)【英文标题】:AddingchildwindowtoMetatrader4\'schartviaDLL-blinking(notredrawing)【发布时间】:2013-09-1614:46:07【问题描述】:我想在Metatrader4的图表窗口中添加一个子窗口,该窗口始终... 查看详情
FLTK双窗口和FLTK单窗口的区别
】FLTK双窗口和FLTK单窗口的区别【英文标题】:DifferencebetweenanFLTKDoubleWindowandaFLTKSingleWindow【发布时间】:2021-01-0802:15:29【问题描述】:我对@987654321@和FLTKDoubleWindow之间的区别感到困惑。在双窗口的FLTK1.4.0文档中,我们得... 查看详情
Fltk 窗口等待
】Fltk窗口等待【英文标题】:FltkWindowwait【发布时间】:2011-11-2218:09:52【问题描述】:C++fltk:我有一个带有in_box和out_box的窗口,我如何制作它以便用户可以在in_box中键入回车,然后继续进行其余的事件。现在,窗口刚刚出现并... 查看详情
FLTK:窗口聚焦在 MacOS 上时的事件
】FLTK:窗口聚焦在MacOS上时的事件【英文标题】:FLTK:EventwhenawindowgetsfocusonMacOS【发布时间】:2017-07-2721:49:14【问题描述】:使用FLTK,我正在编写一个使用多个窗口的桌面应用程序。该应用程序管理一个打开的窗口列表,并在菜... 查看详情