c++ - wxFilePickerCtrl 设置路径后未实现小部件
问题描述
我遇到了 wxFilePickerCtrl 的问题。我尝试使用 SetPath() 方法设置路径,但它不起作用,路径已设置,因为我可以从 GetPath() 获取它,但小部件仍显示路径(无)。
这是我的代码(简化为两个类)。你知道我该怎么做吗?我从文档中尝试了不同的 wxFilePickerCtrl 方法,但结果是一样的。
主.hpp:
#ifndef MAIN_HPP
#define MAIN_HPP
#include <wx/wx.h>
#include "panel.hpp"
class MyApp : public wxApp
{
public:
bool OnInit();
private:
Panel* _panel;
};
#endif
主.cpp:
#include "main.hpp"
wxIMPLEMENT_APP(MyApp)
bool MyApp::OnInit()
{
_panel = new Panel();
_panel->Show(true);
return true;
}
面板.hpp:
#ifndef PANEL_HPP
#define PANEL_HPP
#include <wx/wx.h>
#include <wx/filepicker.h>
class Panel : public wxFrame
{
public:
Panel();
private:
wxFilePickerCtrl* _filePicker;
wxBoxSizer* _sizer;
};
#endif
面板.cpp:
#include "panel.hpp"
Panel::Panel() : wxFrame(NULL, wxID_ANY, "MyApp", wxDefaultPosition, wxSize(850, 450))
{
_sizer = new wxBoxSizer(wxVERTICAL);
_filePicker = new wxFilePickerCtrl(this, wxID_ANY, "filePicker");
sizer->Add(_filePicker, 2, wxALIGN_CENTER, 2);
//file does not matter so in examplie I tried to set to main.cpp
_filePicker->SetPath("/some_path/main.cpp");
this->SetSizer(_sizer);
this->Centre();
}
解决方案
这是一个 GTK 限制,它仅显示此控件中现有文件的名称(因此,如果您/some_path/main.cpp
确实存在,这应该可以工作)。GtkFileChooserButton
如果文件名不存在,我看不到任何显示文件名的方法,所以不幸的是,我认为这无法修复。
一般来说,这个控件确实应该用于加载 GTK 中的现有文件。
推荐阅读
- forms - 单击文本字段时,颤动键盘会隐藏自己
- c++ - 一个痛苦的错误 - codegen.cpp 中的 LoadInst 错误
- python - 如何加快涉及熊猫前一行的计算?
- javascript - 在表格中的特定行之后插入新行
- mediastore - 图像保存在 Scoped Storage Android 10 中,未出现在图库中
- kubernetes - 将 yaml(作为数据)放入配置映射中
- flutter - 如何在 Flutter 中突出显示特定字母的文本?
- django - 访问 XMLHttpRequest 在。从原产地。已被 CORS 策略阻止:不存在“Access-Control-Allow-Origin”标头
- python - Python每组插入连续数字
- swift - SwiftUI macOS Xcode 样式工具栏