简单使用
Gtk::Entry m_entry;
m_entry.set_text("text");
m_entry.get_text();
m_entry.set_max_length();
m_entry.select_region(0, m_entry.get_text_length());
m_entry.set_editable();
m_entry.set_visibility();
|
在例子中还有其它的功能, 但在我的机子上不能编译:
m_entry.set_icon_from_stock(Gtk::Stock::FIND);
m_entry.signal_icon_press().connect(sigc::mem_fun(*this, &callback));
m_Entr.set_progress_fraction(double fraction);
|
还有一个高级功能是在输入的时候自动完成
ExampleWindow::ExampleWindow()
{
Glib::RefPtr<Gtk::EntryCompletion> completion =
Gtk::EntryCompletion::create();
m_Entry.set_completion(completion);
//Create and fill the completion's filter model
Glib::RefPtr<Gtk::ListStore> refCompletionModel =
Gtk::ListStore::create(m_Columns);
completion->set_model(refCompletionModel);
Gtk::TreeModel::Row row = *(refCompletionModel->append());
row[m_Columns.m_col_id] = 1;
row[m_Columns.m_col_name] = "Alan Zebedee";
row = *(refCompletionModel->append());
row[m_Columns.m_col_id] = 2;
row[m_Columns.m_col_name] = "Adrian Boo";
row = *(refCompletionModel->append());
row[m_Columns.m_col_id] = 3;
row[m_Columns.m_col_name] = "Bob McRoberts";
row = *(refCompletionModel->append());
row[m_Columns.m_col_id] = 4;
row[m_Columns.m_col_name] = "Bob McBob";
//Tell the completion what model column to use to
//- look for a match (when we use the default matching, instead of
// set_match_func().
//- display text in the entry when a match is found.
completion->set_text_column(m_Columns.m_col_name);
//Add actions to the completion:
//These are just extra items shown at the bottom of the list of possible
//completions.
//Remember them for later.
typedef std::map<int, Glib::ustring> type_actions_map;
type_actions_map m_CompletionActions;
m_CompletionActions[0] = "use wizard";
m_CompletionActions[1] = "browse for filename";
for(type_actions_map::iterator iter = m_CompletionActions.begin();
iter != m_CompletionActions.end(); ++iter)
{
int position = iter->first;
Glib::ustring title = iter->second;
completion->insert_action_text(title, position);
}
completion->signal_action_activated().connect( sigc::mem_fun(*this,
&ExampleWindow::on_completion_action_activated) );
}
void ExampleWindow::on_completion_action_activated(int index)
{
type_actions_map::iterator iter = m_CompletionActions.find(index);
if(iter != m_CompletionActions.end()) //If it's in the map
{
Glib::ustring title = iter->second;
std::cout << "Action selected: " << title << std::endl;
}
}
|
阅读(695) | 评论(0) | 转发(0) |