我想通过将文本字段的背景设置为错误时的红色和成功输入时的白色来指示 wxGTK 应用程序中的输入错误。但是,当通过 设置SetBackgroundColor
背景颜色时,非活动选择的背景颜色将设置为相同颜色。这会导致将背景颜色设置为白色时出现非常不利的情况:由于所选文本的前景色为白色,而所选文本的背景颜色现在也是白色,因此文本不可读。
如何重置 wxTextCtrl 上的颜色,使非活动选定文本具有灰色背景(SetBackgroundColour 之前的默认设置)?SetBackgroundStyle( wxBG_STYLE_SYSTEM)
是我的第一个猜测,但对 wxGTK 没有影响。
代码示例:
#include <wx/textctrl.h>
#include <wx/frame.h>
#include <wx/defs.h>
#include <wx/app.h>
class App : public wxApp {
bool OnInit() {
wxFrame* frame = new wxFrame(NULL, wxID_ANY, wxT("Frame"));
wxTextCtrl* text = new wxTextCtrl( frame, wxID_ANY, wxT("foo bar") );
text->SetBackgroundStyle( wxBG_STYLE_COLOUR );
text->SetBackgroundColour( *wxWHITE );
frame->Show();
return true;
}
};
IMPLEMENT_APP( App );