我使用以下代码显示“打开文件”对话框:
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个或更多字符) 显示文件对话框时,文件夹看起来已剪裁。
但是在检查时,它并没有真正被削减
更像是文本的起点放在左边太多了。
将光标放在文本框上并向左滚动时,您将获得完整的文件名。
此外,当您切换到另一个窗口然后返回到文件对话框时,它会自行更正并显示完整的文件名。
这并不会影响文件对话框的功能 这更像是一个审美问题。
但是,如果有这种行为的原因或者是否有解决方案,我想知道。
谢谢!
我正在使用:
更新(2017/03/20):
我在wxTrac为这个错误开了一张票。
你可以在这里查看:
http://trac.wxwidgets.org/ticket/17824
答案 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
}