Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
k
6 июня 2018 г. 7:57

ListView переключение между элементами по нажатию ENTER

ListView

как по нажатию ENTER переключаться на следующий элемент

Виртуальный хостинг со скидкой 10 процентов
Виртуальный хостинг со скидкой 10 процентов
EVILEG предлагает надёжный хостинг со скидкой 10% на виртуальный хостинг и 5% на VPS
12
Добрый день.
Вы можете на сайте Qt глянуть список кнопок и их код. И уже исходя из этого по конекту если получин этот код кнопки то что то делать.
Это я в простйо форме описал). Но куда копать вы уже поняли.
У Евгения где то была статья на подобную тему. Или если не найдете я дома гляну, вроде у меня чет было.
0
k

там не кнопки а TextField

0

Ну вот у меня в проекте вроде как раз в textField и была заложена работа с кодами кнопок. Но показать смогу только вечером.

0
TextField {
    // listView - id объекта ListView

    // Enter на цифровой клавиатуре
    Keys.onEnterPressed: {
        console.log(event);
        listView.currentIndex = listView.currentIndex + 1;
    }

    // Enter на основной клавиатуре
    Keys.onReturnPressed: {
        console.log(event);
        listView.currentIndex = listView.currentIndex + 1;
    }
}
0
k

не работает это

0

код показывайте
экстрасенсы в отпуске

0
Вот у меня такая реализация
TextField
{
    id:textWork
    inputMask: ("NN:NN:NN")
    text: "00:00:00"
    anchors.right: parent.right
    width: 76
    font.pixelSize: 14
    background: Rectangle {
        color: "transparent"
        border.width: 0
    }

    Keys.onPressed:
    {
        console.log("testtextwork ", event.key)
        if(event.key === Qt.Key_Enter ||  event.key === Qt.Key_Return)
        {
            setTime(circletimercontent1, textWork.text)
        }
    }
}
0
k
//...
Rectangle {
    Component {
        id: cDelegate
        Item {
            Row {
               ComboBox {
                   delegate: ItemDelegate {
                       Label {
                           //...
                       }
                   }
               }
            
               TextField {
                   //...
                    Keys.onEnterPressed: {
                        //...
                    }
                    Keys.onReturnPressed: {
                        //...
                    }
               }
               
            }
        }
    }
   
    ListView {
         id: listView
         delegate: cDelegate
         model: lModel
         //...
    }
}




1

Доступность элементов в объекте Component довольно ограничена как извне, так и изнутри.
Поэтому очень часто возникает такая проблема, что не удаётся достучаться до некоторых компонентов просто обращением к id.


Перепишите код для начала так.
Rectangle {

    ListView {
         id: listView
         delegate: {
            id: cDelegate
            Item {
                Row {
                   ComboBox {
                       delegate: ItemDelegate {
                           Label {
                           //...
                           }
                       }
                   }
            
                   TextField {
                       //...
                        Keys.onEnterPressed: {
                            lModel.currentIndex = lModel.currentIndex + 1;
                            //...
                        }
                        Keys.onReturnPressed: {
                            //...
                        }
                    }
                   
                 }
             }
         }
         model: lModel
         //...
    }
}
1
k

так там же объект Component как раз и требуется

0

Ну в смысле вот так переписать, я пропустил Item


Rectangle {

    ListView {
         id: listView
         delegate: Item {
            id: cDelegate
            Item {
                Row {
                   ComboBox {
                       delegate: ItemDelegate {
                           Label {
                           //...
                           }
                       }
                   }
            
                   TextField {
                       //...
                        Keys.onEnterPressed: {
                            lModel.currentIndex = lModel.currentIndex + 1;
                            //...
                        }
                        Keys.onReturnPressed: {
                            //...
                        }
                    }
                   
                 }
             }
         }
         model: lModel
         //...
    }
}
Требуется то он требуется. Но в property delegate можно сразу прописывать Item , Rectangle или ещё что-нибудь.
Минус Component в том, что докопаться до того, что у него внутри довольно трудно и точно так же, он не очень хорошо знает, что творится вокруг него.
Очень обособленный элемент получается, что создаёт некоторые трудности при разработке. Я стараюсь избегать Component. Лучше тогда отдельный QML файл прописать для делегата со всякими алиасами и внутренними свойствами для хранения id других элементов.
1
k
  • 7 июня 2018 г. 7:59
  • (ред.)

а как сделать так чтобы в Item были видны данные из модели, и при этом сохранять текст из textField в той же модели?

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
ПМ
18 марта 2019 г. 15:12
Пётр Махнёв

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

  • Результат:50баллов,
  • Очки рейтинга-4
ЯГ
18 марта 2019 г. 7:59
Ян Греку

C++ - Тест 003. Условия и циклы

  • Результат:21баллов,
  • Очки рейтинга-10
МД
15 марта 2019 г. 16:32
Михаил Дементьев

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

  • Результат:60баллов,
  • Очки рейтинга-1
Последние комментарии
16 марта 2019 г. 13:55
Дмитрий

Спасибо за статью. Давно итересует следующий вопрос: с помощью переменных QMAKE_TARGET_COMPANYQMAKE_TARGET_PRODUCTQMAKE_TARGET_DESCRIPTIONможно задать свойства компилируемой программы, о...
JS
12 марта 2019 г. 10:19
Jean Stefanovich

Большое спасибо за разъяснения!
12 марта 2019 г. 10:04
Евгений Легоцкой

Hello, In fact, this functionality or is not implemented, or is not documented. I'm not sure. But I think, that it should be implemented in Text QML Type. Because of we can write text in...
12 марта 2019 г. 9:51
Евгений Легоцкой

Да вы правы. На самом деле проще через QSqlQueryModel, сколько не пытался использовать эти дженерики типо QSqlTableModel и QSqlRelationalTableModel, то всегда упирался в какие-то их ограничени...
JS
12 марта 2019 г. 9:47
Jean Stefanovich

Единицы измерения лежат там же где и названия продуктов. Просто в таблице ингредиенты нет ещё одного столбца, на который можно было бы установить setRelation. Я в итоге в базе создал ещё один ...
Сейчас обсуждают на форуме
17 марта 2019 г. 22:47
Евгений Легоцкой

Добрый день. Вот, нашлось у меня немного времени. Делается это через шаблон проектирования наблюдатель. GraphKS_mfvSlup.zip
ЧГ
15 марта 2019 г. 21:52
Чарльз Грин

спасибо, попробую, отпишусь
m
15 марта 2019 г. 19:41
mihamuz

Сори догадался)
n
12 марта 2019 г. 16:57
newbie.works.with.QT

Большооооое спасибо!!!!!Не передать как я вам благодарен, спасибо что всегда отзываетесь.Теперь я смогу продолжить работу в QT!!! (пробую писать бота (Я как вы могли догадаться немного не пр...
12 марта 2019 г. 13:20
BlinCT

Ну так если у вас есть готовая программа так ей и воспользуйтесь. Вы же написали ее вот и пользуйтесь.
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы