Extender el diálogo de impresión
Puede añadir una pestaña personalizada al diálogo de impresión:
- Establezca el título de la pestaña mediante PrintOperation::set_custom_tab_label(), cree un widget nuevo y devuélvalo desde el manejador de señales create_custom_widget. Probablemente quiera que este sea un widget contenedor, empaquetado con algunos otros.
- Obtenga los datos de los widgets en el manejador de señales custom_widget_apply.
A pesar de que la señal custom_widget_apply proporciona al widget que creó previamente, para simplificar las cosas puede mantener a los widgets que espera que contengan entrada del usuario como miembros de clase. Por ejemplo, si tiene un Gtk::Entry llamado m_Entry como miembro de su clase CustomPrintOperation:
Gtk::Widget* CustomPrintOperation::on_create_custom_widget() { set_custom_tab_label("My custom tab"); Gtk::Box* hbox = new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, 8); hbox->set_border_width(6); Gtk::Label* label = Gtk::manage(new Gtk::Label("Enter some text: ")); hbox->pack_start(*label, false, false); label->show(); hbox->pack_start(m_Entry, false, false); m_Entry.show(); return hbox; } void CustomPrintOperation::on_custom_widget_apply(Gtk::Widget* /* widget */) { Glib::ustring user_input = m_Entry.get_text(); //... }
El ejemplo en examples/book/printing/advanced demuestra esto.