Михаиллл
Михаиллл29. Mai 2019 09:52

Как в Qt сделать combobox похожий на настройки (⋮) в Android

Добрый день.
В программах для Android часто встречается кнопка ⋮, при нажатии на которую появляется combobox.
Скажите пожалуйста, как сделать такое в Qt

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

12
Evgenii Legotckoi
  • 29. Mai 2019 10:25

Добрый день!

Вот готовый пример по созданию меню для Android

    Михаиллл
    • 29. Mai 2019 10:34

    а можно это сделать в QWidgets?

      Evgenii Legotckoi
      • 29. Mai 2019 10:42

      Можно, но придётся много кастомизировать стили и т.д. И ещё это очень плохое решение, делать приложение для Андроида на QWidget. Ну не самое лучше решение.

      Впрочем делать кастомизацию, например, как в этой статье по кастомизации в стиле AIMP плеера на Qt , не никакой проблемы. Просто потребуется переписать стили меню пожалуй, но опять же, на виджетах такой функционал в стиле Material Design отсутствует полностью и они не заточены под мобильную разработку.

        Михаиллл
        • 29. Mai 2019 11:01

        А чем плохи QWidget для Андроида, если приложение примитивное? Я как то пробовал, и оно нормально работало.
        Похоже желаемого можно добится ч помощью QToolButton и метода QAction *QToolBar::addAction(const QString &text) , только как это сделать?

          Михаиллл
          • 29. Mai 2019 11:29

          Вот так можно, но как привязать слот к выбору?

              QMenu* menu = new QMenu(this);
              menu->addAction(tr("Настройки"));
              menu->addAction(tr("О программе"));
              ui->pushButton->setMenu(menu);
          
            Михаиллл
            • 29. Mai 2019 12:04
            • (bearbeitet)

            Попробовал сделать так, но так не работает:

                QMenu* menu = new QMenu(this);
                menu->addAction(tr("Настройки"));
                menu->addAction(tr("О программе"));
                ui->optionButton->setMenu(menu);
            
                connect(menu, SIGNAL(triggered()), this, SLOT(testSlot()));
                connect(menu, SIGNAL(triggered(tr("Настройки"))), this, SLOT(testSlot()));
            
              Михаиллл
              • 29. Mai 2019 13:28
              • Die Antwort wurde als Lösung markiert.

              Вот так работает

              connect(action0, SIGNAL(triggered(bool)), this, SLOT(testSlot()));
              connect(action1, SIGNAL(triggered(bool)), this, SLOT(testSlot()));
              
                Evgenii Legotckoi
                • 30. Mai 2019 02:39
                • QWidget хуже приспособлены для адаптивной вёрстки, чем QML. Они вообще не предназначены для мобильной разработки, тогда как QML разрабатывался именно для мобильной разработки.
                • Также QWidget плохо работают на экранах с высоким разрешением.
                • В QWidget отсутствует Material Design, который есть из коробки в QML.
                • Это сейчас у вас желаемое - лишь бы заработало, а потом будет желаемым, чтобы всё выглядело также, как в известных пиложениях. Вот только на QWidget вы этого либо не добьётесь, либо угробите уйму времени на кастомизацию, которую в QML либо не потребуется делать, либо это будет реализовываться в разы проще.
                  BlinCT
                  • 30. Mai 2019 06:02

                  Старый синтаксиси, не используйте его.

                    BlinCT
                    • 30. Mai 2019 06:03
                    • (bearbeitet)

                    QML разрабатывался для работы с тачскринами. А виджеты нет. По этому мобильные приложения писать на виджетах ОЧЕНЬ странное решение.
                    И к слову, там где у вас указываются какие то надписи которые будет видеть юзер, по дефолту лучше писать на английском. Именно сразу а не потом.

                      Михаиллл
                      • 30. Mai 2019 06:11

                      спасибо

                        Kommentare

                        Nur autorisierte Benutzer können Kommentare posten.
                        Bitte Anmelden oder Registrieren
                        Letzte Kommentare
                        A
                        ALO1ZE19. Oktober 2024 15:19
                        Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                        ИМ
                        Игорь Максимов5. Oktober 2024 14:51
                        Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                        d
                        dblas55. Juli 2024 18:02
                        QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                        k
                        kmssr9. Februar 2024 02:43
                        Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                        Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                        Jetzt im Forum diskutieren
                        J
                        JacobFib17. Oktober 2024 10:27
                        добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
                        JW
                        Jhon Wick1. Oktober 2024 22:52
                        Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
                        КГ
                        Кирилл Гусарев27. September 2024 16:09
                        Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
                        F
                        Fynjy22. Juli 2024 11:15
                        при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

                        Folgen Sie uns in sozialen Netzwerken