LINUX.ORG.RU

Два вопроса по qt добавление виртуальной клавиатуры и как сделать невидимую кнопку

 ,


0

1

Я новичок в qt creator и не знаю как правильно добавить виртуальную клавиатуру. Выбрал вот эту https://store.kde.org/p/1132203/ Можете посоветовать что-то другое.

Версия qt4.7.8.

И как можно сделать невидимую активную кнопку на весь экран ? В этот момент на экране будут присутствовать другие виджиты. Когда на нее нажимаешь переходишь во второе окно.

В development.


Я новичок в qt creator

Qt Creator — IDE. Вероятно, имелось в виду «новичок в Qt» или даже «новичок в C++»?


И как можно сделать невидимую активную кнопку на весь экран ?

Я не уверен, что это именно то, чего ты хочешь. Опиши детальнее задачу, уверен, она решается гораздо проще и менее костыльно

XMs ★★★★★
()

Если я вас правильно понял - то вы пытаетесь сделать что то странное. Вы можете переопределить метод event/mousePressEvent для вашей главной формы и отловить события нажатия мыши или клавиши. http://doc.crossplatform.ru/qt/4.6.x/eventsandfilters.html

Silerus ★★★★
()

добавить виртуальную клавиатуру

Добавить к «чему»? Воображаемый глобус - это конечно хорошо, и на ЛОРе им готовы играться до бесконечности, но реального результата такие «игры» не приносят.

anonymous
()
Ответ на: комментарий от XMs

Нет в с++ я не новичок. В общем есть главный экран. На нем отображаются часы и информация о состояние внешних приборов. Если мы хотим перейти в меню настроек то тыкаем в любую область экрана. Вот нужен такой переход.

А виртуальную клавиатуру охота привязать к проекту.

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

виртуальную клавиатуру охота привязать к проекту.

Не надо так хотеть. Гугли QT_IM_MODULE

aol ★★★★★
()
Ответ на: комментарий от Alex_Golubev

Тоньше надо быть, осень же на дворе.

pon4ik ★★★★★
()
Ответ на: комментарий от Alex_Golubev

Что бы два раза не ходить про новичков, если ты вдруг не троллишь:

Опиши в «двух словах», как собирается программа на c++(поэтапно начиная с исходных кодов и заканчивая итоговым исполняемым файлом, библиотекой или архивом), как примерно устроен shared object, и(наиболее релевантно к затронутой теме) - к какому классу(на тройку) и подклассу(на четвёрку) ПО относятся qmake, cmake, autotools и в чём их ключевые отличия от make, ninja, scons и qbs.

pon4ik ★★★★★
()
Ответ на: удаленный комментарий

Ну чего ты такой агрессивный? Qt сегодня это как Delphi в середине нулевых. Давно уже появились программисты на Qt, а не на C++.

EXL ★★★★★
()
Ответ на: комментарий от Alex_Golubev

Дошел до пункта 4. Выполнил команду и получил ошибку:


alexey@debian:~/Загрузки/qtvirtualkeyboard-opensource-src-5.9.0$ qmake -qt4.7.8 && make
qmake: could not find a Qt installation of '4.7.8'
alexey@debian:~/Загрузки/qtvirtualkeyboard-opensource-src-5.9.0$ 

[\code]

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

Alex_Golubev (22.09.19 12:53:06)

$ qmake -qt4.7.8

Определись наконец, чего ты хочешь. Может ты хотел этого?:

$ qmake-qt4 .

anonymous
()
Ответ на: комментарий от anonymous

Пробовал тоже не работает. У меня qt4,7,8(host) в buildroot путь к нему qmake location /home/alexey/work1/buildroot/output/host/bin/qmake

Как понимаю нужно именно его использовать. Но не понимаю как.

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev
alexey@debian:~/Загрузки/qtvirtualkeyboard-opensource-src-5.9.0$ qmake-qt4 . && make
/home/alexey/Загрузки/qtvirtualkeyboard-opensource-src-5.9.0/qtvirtualkeyboard.pro:2: Unknown test function: qtHaveModule
WARNING: /home/alexey/Загрузки/qtvirtualkeyboard-opensource-src-5.9.0/qtvirtualkeyboard.pro:3: Unable to find file for inclusion qt_parts
Some of the required modules (qtHaveModule(quick)) are not available.
Skipped.
alexey@debian:~/Загрузки/qtvirtualkeyboard-opensource-src-5.9.0$ 

Alex_Golubev
() автор топика
Ответ на: комментарий от XMs

Я это понимаю.

Вопросик если я пишу

qmake-qt4 . && make
то я к какому qt4. обращаюсь? Который в дисктопе или в buildroot.

Пример Вот пишу я программу в qt creator и в options ---> KITS указал qt version qt4.7.8(host) и прописал путь к нему qmake location /home/alexey/work1/buildroot/output/host/bin/qmake

Alex_Golubev
() автор топика
Ответ на: комментарий от XMs

Могу ошибаться

Можешь конечно, но не ошибся.

anonymous
()
Ответ на: комментарий от XMs

Ну а в системе у меня qt4.7.8 а в buildroot qt4.7.8(host). Мне нужно чтобы он гарантировано обратился к qt из buildroot. А так получиться не понятно что.

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

Мне нужно чтобы он гарантировано обратился к qt из buildroot

Лучше создай ещё один тред именно по этому вопросу. Я, к сожалению, с qmake мало работал, в нюансы не вникал

XMs ★★★★★
()
Ответ на: комментарий от XMs

Пошел по пути который знаю.

В общем взял вот эту клавиатуру https://store.kde.org/p/1132203/ и собрал ее в qt creator но только с моим qt4.7.8(host) из buildroot. Запустил работает.

Но есть проблема с размером, клавиатура больше экрана нужно уменьшить ее. В Коментарии описано как это сделать - Add a new parameter to the show() method to create a frameless keyboard for reduced displays

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

Подскажите ?

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

У класса widgetKeyBoard есть метод void show(QWidget *activeForm, QLineEdit *first = NULL, bool frameless = false). Полагаю, это то, что нужно

XMs ★★★★★
()
Ответ на: комментарий от XMs

А зачем QML, если нужен QtQuick?

Ты разве не в курсе, что технология называется QtQuick, а QML это просто язык? Примерно так же, как Qt и C++.

EXL ★★★★★
()
Ответ на: комментарий от Alex_Golubev

Попробуй добавить перед show():

_keyboard->resize(x, y);

Где x, y – нужный тебе размер в пикселях. Ну а лучше прислушайся к совету анонима выше.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Да я спросил у людей подойдет она для qt4.7.8 buildroot и не получил ответа. промучился субботу .

Alex_Golubev
() автор топика
Ответ на: комментарий от anonymous

Это я уже сделал не помогло


<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Form</class>
 <widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>640</width>
    <height>480</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>Form</string>
  </property>
  <widget class="QFrame" name="frame">
   <property name="geometry">
    <rect>
     <x>-50</x>
     <y>220</y>
     <width>681</width>
     <height>240</height>
    </rect>
   </property>
   <property name="frameShape">
    <enum>QFrame::Box</enum>
   </property>
   <property name="frameShadow">
    <enum>QFrame::Raised</enum>
   </property>
  </widget>
  <widget class="QPushButton" name="pushButton">
   <property name="geometry">
    <rect>
     <x>480</x>
     <y>130</y>
     <width>80</width>
     <height>21</height>
    </rect>
   </property>
   <property name="text">
    <string>Show</string>
   </property>
  </widget>
  <widget class="QLineEdit" name="lineEdit">
   <property name="geometry">
    <rect>
     <x>80</x>
     <y>80</y>
     <width>113</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QLineEdit" name="lineEdit_2">
   <property name="geometry">
    <rect>
     <x>120</x>
     <y>120</y>
     <width>113</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QPushButton" name="pushButton_2">
   <property name="geometry">
    <rect>
     <x>320</x>
     <y>130</y>
     <width>80</width>
     <height>21</height>
    </rect>
   </property>
   <property name="text">
    <string>Hide</string>
   </property>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>

[\code]

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

Хорошо где он вызывается ?

Посмотри в исходниках клавиатуры, там, насколько я понял, пример приведён

XMs ★★★★★
()
Ответ на: комментарий от EXL

Ты разве не в курсе, что технология называется QtQuick, а QML это просто язык?

Если честно, не особо интересовался. Мне казалось, что QtQuick — это что-то вроде прототипа, из которого вырос QML

XMs ★★★★★
()
Ответ на: комментарий от EXL

Походу придется самому рисовать клавиатуру. Нету нормальной клавы для 640x480. А те что есть или больше или лагают.

Alex_Golubev
() автор топика
Ответ на: комментарий от anonymous

Эта клавиатуру еще лагает. Она сильно тяжелая для ARM IMX287. Надо что-то попроще.

Alex_Golubev
() автор топика
Ответ на: комментарий от EXL

EXL вот нашел интересную статью https://doc.qt.io/archives/qt-4.8/qt-tools-inputpanel-example.html Но после прочтения остался вопрос, можно сделать эту панель общую для всех forms? Ну чтобы можно было тыкнуть пальцем в edited и панель всплыла после завершения набора можно было ее убрать.

Alex_Golubev
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.