LINUX.ORG.RU

История изменений

Исправление kvpfs_2, (текущая версия) :

Покажи потом что ты там наговнякаешь на своём fltk, спорю что на Qt это можно сделать проще и в 2 раза короче.

Накостылил. Юзать таблицу просто (простое заполнение, можно и с циклами, естественно):

int main()
{
   Itable<3> t("My table",
         {
            Column_header{"First column", 100, false},
            {"Second column", 150, true}, // title, width, editable
            {"Third column", 200, false}},
         {
            {"hello", "world", "1"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"}
         },
         // callback called at cell modification
         {[](data_t<3> &d, int row, int col, const char *new_val) {
            d[row][col] = new_val;
            d.pop_back(); // delete last item
         }},
         {
            {"first_action", 0, {}},
            {"menu_root/second_action", 0, {}},
            {"third_action", 0,
               // callback at action button click
               [](data_t<3> &, std::vector<int>) {
                  std::cout << "Hello world!!!" << std::endl; }},
            });

   t.show();
   Fl::run();
}

Задаю пункты меню с колбэками при нажатии на них (в колбэк передается массив с данными таблицы и массив с индексами выбранных строк, в колбэке можно редактировать данные как хочется). Красные колонки доступны для редактирования, по завершению редактированию дергается колбэк, в него передается массив строк таблицы и новое значение, применять его или нет - дело хозяйское. Ну и всякое типо прокрутки, смена ширины колонок. В общем вышло точно то, что и хотел. Получилось 300 строк кода. Теперь заюзаю данную таблицу по максимуму в проекте с разными настройками и колбэками без дополнительного формошлепства. Еще доступны сочетания клавиш на действия вешать (там где ноль передается).

Исправление kvpfs_2, :

Покажи потом что ты там наговнякаешь на своём fltk, спорю что на Qt это можно сделать проще и в 2 раза короче.

Накостылил. Юзать таблицу просто (простое заполнение, можно и с циклами, естественно):

int main()
{
   Itable<3> t("My table",
         {
            Column_header{"First column", 100, false},
            {"Second column", 150, true}, // title, width, editable
            {"Third column", 200, false}},
         {
            {"hello", "world", "1"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"}
         },
         // callback called at cell modification
         {[](data_t<3> &d, int row, int col, const char *new_val) {
            d[row][col] = new_val;
            d.pop_back(); // delete last item
         }},
         {
            {"first_action", 0, {}},
            {"menu_root/second_action", 0, {}},
            {"third_action", 0,
               // callback at action button click
               [](data_t<3> &, std::vector<int>) {
                  std::cout << "Hello world!!!" << std::endl; }},
            });

   t.show();
   Fl::run();
}

Задаю пункты меню с колбэками при нажатии на них (в колбэк передается массив с данными таблицы и массив с индексами выбранных строк, в колбэки можно редактировать данные как хочется). Красные колонки доступны для редактирования, по завершению редактированию дергается колбэк, в него передается массив строк таблицы и новое значение, применять его или нет - дело хозяйское. Ну и всякое типо прокрутки, смена ширины колонок. В общем вышло точно то, что и хотел. Получилось 300 строк кода. Теперь заюзаю данную таблицу по максимуму в проекте с разными настройками и колбэками без дополнительного формошлепства. Еще доступны сочетания клавиш на действия вешать (там где ноль передается).

Исходная версия kvpfs_2, :

Покажи потом что ты там наговнякаешь на своём fltk, спорю что на Qt это можно сделать проще и в 2 раза короче.

Накостылил. Юзать таблицу просто (простое заполнение, можно и с циклами, естественно):

int main()
{
   Itable<3> t("My table",
         {
            Column_header{"First column", 100, false},
            {"Second column", 150, true}, // title, width, editable
            {"Third column", 200, false}},
         {
            {"hello", "world", "1"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"},
            {"2", "3", "4"}
         },
         // callback called at cell modification
         {[](data_t<3> &d, int row, int col, const char *new_val) {
            d[row][col] = new_val;
            d.pop_back(); // delete last item
         }},
         {
            {"first_action", 0, {}},
            {"menu_root/second_action", 0, {}},
            {"third_action", 0,
               // callback at action button click
               [](data_t<3> &, std::vector<int>) {
                  std::cout << "Hello world!!!" << std::endl; }},
            });

   t.show();
   Fl::run();
}

Задаю пункты меню с колбэками при нажатии на них (в колбэк передается массив с данными таблицы и массив с индексами выбранных строк, в колбэки можно редактировать данные как хочется). Красные колонки доступны для редактирования, по завершению редактированию дергается колбэк, в него передается массив строк таблицы и новое значение, применять его или нет - дело хозяйское. Ну и всякое типо прокрутки, смена ширины колонок. В общем вышло точно то, что и хотел. Получилось 300 строк кода. Теперь заюзаю данную таблицу по максимуму в проекте с разными настройками и колбэками без дополнительного формошлепства.