我使用wxFloatingPoint格式我的文本控件在点之后显示两位数。
我在对话框init();
中描述它们 double sayi;
wxFloatingPointValidator<double>
val(2, &sayi, wxNUM_VAL_ZERO_AS_BLANK);
val.SetRange(0.0, 360.0);
TextCtrl1 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxPoint(120,96), wxDefaultSize, wxTE_READONLY|wxTE_CENTRE|wxNO_BORDER, val, _T("ID_TEXTCTRL3"));
我将文本控件标签设置在另一个从udp获取数据的函数中:
void OgrenciDialog::VerileriYaz(string hiz, string yon)
{
TextCtrl1->SetValue(yon);
}
但它仍显示12,4325643346等值。
我错过了什么吗?
答案 0 :(得分:0)
如果后者在对话框中并且您没有覆盖其数据传输方法,则验证器应将关联变量的值传输到控件。但是,从您显示的代码中,您将指向局部变量的指针传递给验证器,这意味着它将使用悬空指针。通常,您将使用OgrenciDialog::m_sayi
来确保指针保持有效。
另外,为什么要在wxTextCtrl上调用SetLabel()
?这没有意义。