wxFileDialog文件名文本框显示为已剪切

时间:2017-03-14 03:41:55

标签: textbox filenames wxwidgets openfiledialog filedialog

我使用以下代码显示“打开文件”对话框:

wxFileDialog fileDialog(
    this,
    wxEmptyString,
    "E:\\Testfiles",
    "SOME_TEST_FILE_WITH_LONG_NAME.txt",
    "TXT files (*.txt)|*.txt",
    wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR);
if (fileDialog.ShowModal() == wxID_OK)
{
    // do something with the file
}

请注意,我将默认文件名设置为长字符串(大约10个或更多字符) 显示文件对话框时,文件夹看起来已剪裁。

file chooser dialog with clipped filename

但是在检查时,它并没有真正被削减 更像是文本的起点放在左边太多了。
将光标放在文本框上并向左滚动时,您将获得完整的文件名。

file chooser dialog with scrolled filename

此外,当您切换到另一个窗口然后返回到文件对话框时,它会自行更正并显示完整的文件名。

这并不会影响文件对话框的功能 这更像是一个审美问题。

但是,如果有这种行为的原因或者是否有解决方案,我想知道。

谢谢!

我正在使用:

  • wxWidgets 3.1.0
  • Windows 10 Home 64位

更新(2017/03/20)

我在wxTrac为这个错误开了一张票。
你可以在这里查看: http://trac.wxwidgets.org/ticket/17824

2 个答案:

答案 0 :(得分:0)

这看起来像是wxWidgets中的一个错误,请尝试在http://codepen.io/katspaugh/pen/GozaaG/中通过对已存在的wxFileDialog电话进行微小更改并在dialogs sample上打开一张票来尝试重现它使用补丁允许查看问题,以便有人可以调试它。

答案 1 :(得分:0)

作为临时解决方法(虽然official resolution from wxWidgets尚不可用),在正确构建文件对话框后调用CenterOnParent()"滚动"文件名,以便它不会显示为"剪裁"。

wxFileDialog fileDialog(
    this,
    wxEmptyString,
    "E:\\Testfiles",
    "SOME_TEST_FILE_WITH_LONG_NAME.txt",
    "TXT files (*.txt)|*.txt",
    wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_CHANGE_DIR);

// fixes the clipped filename
fileDialog.CenterOnParent();

if (fileDialog.ShowModal() == wxID_OK)
{
    // do something with the file
}