s
sol1114 березня 2018 р. 16:18

Контекстное меню..

#Qt

Evileg после этого https://evileg.com/forum/topic/473/ решил добавить к своему проекту, выбор действия по контекстному меню, удаление работает, а редактировать не получается. Скрин ниже :( Можешь помочь пожалуйста, как тут сделать?

photo_2018-03-14_23-11-35.jpg
Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

7
BlinCT
  • 14 березня 2018 р. 16:30

Добрый вечер.
Почитайте пожалуйста вот эту тему https://evileg.com/post/87/
У сигнала и слота должна быть схожая сигнатура. В вашем же случаи сигнал ничего не посылает а слот принимает индекс. То есть их сигнатура очень различна.
А по статье там слот ничего не принимает.

    s
    • 14 березня 2018 р. 16:46

    Я понимаю что должна быть похожая сигнатура, просто не могу придумать как в контекстную менюшку отправить индекс, щас это выглядит так ->

      BlinCT
      • 14 березня 2018 р. 16:54
      • (відредаговано)

      Не кидайте пожалуйста скриншоты. Хотите показать код просто вставкой сделайте.

        Evgenii Legotckoi
        • 14 березня 2018 р. 16:56

        Добрый день!

        Не надо кидать скриншоты программного кода. В редакторе комментариев есть диалог вставки программного кода. Пользуйтесь им, пожалуйста.
        Если кто-то захочет вам помочь, то будет вынужден перепечатывать вручную весь код, если ему потребуется повторить его работу у себя.
        Ни на одном форуме не приветствуется вставка программного кода в виде скриншотов.
          s
          • 14 березня 2018 р. 17:05
              connect(ui->deviceTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(slotEditRecord(QModelIndex)));
              // Коннект к слоту вызова контекстного меню
              connect(ui->deviceTableView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotCustomMenuRequested(QPoint)));
          }
          
          
          void MainWindow::slotCustomMenuRequested(QPoint pos) // Контекстное меню
          {
            
              QMenu *menu = new QMenu(this);
          
              QAction *editDevice = new QAction(trUtf8("Редактировать"), this);
              QAction *deleteDevice = new QAction(trUtf8("Удалить"), this);
              
          
              connect(editDevice, SIGNAL(triggered()), this, SLOT(slotEditRecord(QModelIndex)));
          
              connect(deleteDevice, SIGNAL(triggered()), this, SLOT(slotRemoveRecord()));
          
          
              menu->addAction(editDevice);
              menu->addAction(deleteDevice);
          
              menu->popup(ui->deviceTableView->viewport()->mapToGlobal(pos)); 
          } Такс, вот
            Evgenii Legotckoi
            • 14 березня 2018 р. 17:31
            • Відповідь була позначена як рішення.

            Создайте ещё один слот специально для контекстного меню, назовём его например onEditDeviceAction() , чтобы не было аргумента с индексом.

            А выглядеть он будет так.
            void MainWindow::onEditDeviceAction()
            {
                slotEditRecord(ui->deviceTableView->selectionModel()->currentIndex());
            }
            И вот этот слот уже подключайте к сигналу.
            connect(editDevice, SIGNAL(triggered()), this, SLOT(onEditDeviceAction()));
            По сути это будет такая обёртка, которая предоставит нужный индекс в ваш метод для редактирования записи.

            Не забудьте объявить слот void onEditDeviceAction() в заголовочном файле класса MainWindow
              s
              • 16 березня 2018 р. 01:15

              Спасибо :)

                Коментарі

                Only authorized users can post comments.
                Please, Log in or Sign up
                d
                • dsfs
                • 26 квітня 2024 р. 04:56

                C++ - Тест 004. Указатели, Массивы и Циклы

                • Результат:80бали,
                • Рейтинг балів4
                d
                • dsfs
                • 26 квітня 2024 р. 04:45

                C++ - Тест 002. Константы

                • Результат:50бали,
                • Рейтинг балів-4
                d
                • dsfs
                • 26 квітня 2024 р. 04:35

                C++ - Тест 001. Первая программа и типы данных

                • Результат:73бали,
                • Рейтинг балів1
                Останні коментарі
                k
                kmssr08 лютого 2024 р. 18:43
                Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                АК
                Анатолий Кононенко05 лютого 2024 р. 01:50
                Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                EVA
                EVA25 грудня 2023 р. 10:30
                Boost - статичне зв&#39;язування в проекті CMake під Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                J
                JonnyJo25 грудня 2023 р. 08:38
                Boost - статичне зв&#39;язування в проекті CMake під Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                G
                Gvozdik18 грудня 2023 р. 21:01
                Qt/C++ - Урок 056. Підключення бібліотеки Boost в Qt для компіляторів MinGW і MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                Тепер обговоріть на форумі
                IscanderChe
                IscanderChe30 квітня 2024 р. 04:22
                Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…
                G
                Gar22 квітня 2024 р. 05:46
                Clipboard Как скопировать окно целиком в clipb?
                DA
                Dr Gangil Academics20 квітня 2024 р. 07:45
                Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
                a
                a_vlasov14 квітня 2024 р. 06:41
                Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                Павел Дорофеев
                Павел Дорофеев14 квітня 2024 р. 02:35
                QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь

                Слідкуйте за нами в соціальних мережах