رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

پست های پیشنهاد شده

من از کیوت 5.9.1 برای دستگاه ارم دارم استفاده میکنم. نمونه کد basic که مال مثال کیوت هست روی برد من درست کار میکنه. منم خواستم چیزی شبیه اون بسازم

این کد ها را .pro اضافه کردم
QT +=qml quick 
CONFIG += c++11 

static { QT += svg QTPLUGIN += qtvirtualkeyboardplugin }
disable-desktop|android-embedded|!isEmpty(CROSS_COMPILE)|qnx 
# Additional import path used to resolve QML modules in Qt Creator's code model 

QML_IMPORT_PATH =/opt/rootfs-s5p4418/usr/local/Trolltech/Qt-5.9.1-nexell32/qml/QtQuick/Controls.2/Material QML_IMPORT_PATH =/opt/rootfs-s5p4418/usr/local/Trolltech/Qt-5.9.1-nexell32/qml/Qt/labs 
# Additional import path used to resolve QML modules just for Qt Quick Designer QML_DESIGNER_IMPORT_PATH =/opt/rootfs-s5p4418/usr/local/Trolltech/Qt-5.9.1-nexell32/qml/QtQuick/Controls.2/Material

و این کدها به صفحه ای که دارای ادیتور است تا بتوانم در ان تایپ کردم

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.VirtualKeyboard 2.2
import QtQuick.VirtualKeyboard.Settings 2.2

و این کد برای صفحه main.cpp

int main(int argc, char *argv[]) {

 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); 

 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
 QGuiApplication app(argc, argv); 
 QQmlApplicationEngine engine;
 engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
 
if (engine.rootObjects().isEmpty())
 return -1; 

return app.exec(); }

اما نشون نمیده. کسی میدونه کجای کار اشکال داره؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 41 دقیقه قبل، فانوس گفته است :

من از کیوت 5.9.1 برای دستگاه ارم دارم استفاده میکنم. نمونه کد basic که مال مثال کیوت هست روی برد من درست کار میکنه. منم خواستم چیزی شبیه اون بسازم

این کد ها را .pro اضاف کردم

QT +=qml quick 
CONFIG += c++11 

static { QT += svg QTPLUGIN += qtvirtualkeyboardplugin }
disable-desktop|android-embedded|!isEmpty(CROSS_COMPILE)|qnx 
# Additional import path used to resolve QML modules in Qt Creator's code model 

QML_IMPORT_PATH =/opt/rootfs-s5p4418/usr/local/Trolltech/Qt-5.9.1-nexell32/qml/QtQuick/Controls.2/Material QML_IMPORT_PATH =/opt/rootfs-s5p4418/usr/local/Trolltech/Qt-5.9.1-nexell32/qml/Qt/labs 
# Additional import path used to resolve QML modules just for Qt Quick Designer QML_DESIGNER_IMPORT_PATH =/opt/rootfs-s5p4418/usr/local/Trolltech/Qt-5.9.1-nexell32/qml/QtQuick/Controls.2/Material

و این کدها به صفحه ای که دارای ادیتور است تا بتوان در ان تایپ کردم


import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.VirtualKeyboard 2.2
import QtQuick.VirtualKeyboard.Settings 2.2

و این کد برای صفحه main.cpp


int main(int argc, char *argv[]) {

 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); 

 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
 QGuiApplication app(argc, argv); 
 QQmlApplicationEngine engine;
 engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
 
if (engine.rootObjects().isEmpty())
 return -1; 

return app.exec(); }

اما نشون نمیده. کسی میدونه کجای کار اشکال داره؟

این مثال رو آزمایش کنید. باید رویداد‌های نمایشی صفحه کلید در سمت کیو‌ام‌ال هم به درستی تنظیم بشه، در صورتی که جواب نداد مشکل مربوط به نسخه‌ی Qt خواهد بود. چون این ویژگی صفحه کلید مجازی در نسخه‌ی تجاری فعال هست که از نسخه‌های اخیر آزاد شده.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در هم اکنون، کامبیز اسدزاده گفته است :

این مثال رو آزمایش کنید. در صورتی که جواب نداد مشکل مربوط به نسخه‌ی Qt خواهد بود. چون این ویژگی صفحه کلید مجازی در نسخه‌ی تجاری فعال هست که از نسخه ۵.۱۰ به اینور هم آزاد شده.

سلام. این مثال روی دستگاه داره کار میکنه . من این تکه کد ها را از همین مثال کپی کردم. درست کار میکنه . اما کدی که من کپی کردم کار نمیکنه. میخواستم بدونم چه چیزهایی را دیگه باید کپی کنم تا کار کنه.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 9 دقیقه قبل، فانوس گفته است :

سلام. این مثال روی دستگاه داره کار میکنه . من این تکه کد ها را از همین مثال کپی کردم. درست کار میکنه . اما کدی که من کپی کردم کار نمیکنه. میخواستم بدونم چه چیزهایی را دیگه باید کپی کنم تا کار کنه.

خب از کد‌های سمت QML شما بی خبر هستیم و احتمال این هستش که در این بخش مشکلی وجود داشته باشه. طبق مثالی که زده شده باید رویداد‌های کلیدی (اکشن)‌ ها هم به درستی برای فیلد متن مشخص بشه جزئیات رو مطابق مثال بررسی کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 6 شهریور 1397 در 17:22، کامبیز اسدزاده گفته است :

خب از کد‌های سمت QML شما بی خبر هستیم و احتمال این هستش که در این بخش مشکلی وجود داشته باشه. طبق مثالی که زده شده باید رویداد‌های کلیدی (اکشن)‌ ها هم به درستی برای فیلد متن مشخص بشه جزئیات رو مطابق مثال بررسی کنید.

سلام. طبق جست و جویی که کردم با اضاف کردن این لینک به .pro 

static { QT += svg QTPLUGIN += qtvirtualkeyboardplugin }

و این کد به فایل

int main(int argc, char *argv[]) {

 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); 
 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
 QGuiApplication app(argc, argv);
 QQmlApplicationEngine engine;
 engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
 if (engine.rootObjects().isEmpty())
 return -1; return app.exec(); 

}

در فایل اصلی هم این کد را نوشتم اما کار نمیکنه وقتی روی تکسم کلیل میکنم. البته روی دیوایس لمسی

import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.VirtualKeyboard 2.1

Window {

 visible: true width: 640 height: 480
 TextInput { id: textInput;
 text:"ssssss"
 height: 120;
 width: parent.width - 2;
 anchors.bottom: keyboard.top 
 color: "#000000"; // black 
 // http://doc.qt.io/qt-5/qinputmethod.html#
 properties focus: Qt.inputMethod.visible;
 verticalAlignment: TextInput.AlignVCenter; 

 } 

}

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 22 ساعت قبل، فانوس گفته است :

سلام. طبق جست و جویی که کردم با اضاف کردن این لینک به .pro 


static { QT += svg QTPLUGIN += qtvirtualkeyboardplugin }

و این کد به فایل


int main(int argc, char *argv[]) {

 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); 
 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
 QGuiApplication app(argc, argv);
 QQmlApplicationEngine engine;
 engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
 if (engine.rootObjects().isEmpty())
 return -1; return app.exec(); 

}

در فایل اصلی هم این کد را نوشتم اما کار نمیکنه وقتی روی تکسم کلیل میکنم. البته روی دیوایس لمسی


import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.VirtualKeyboard 2.1

Window {

 visible: true width: 640 height: 480
 TextInput { id: textInput;
 text:"ssssss"
 height: 120;
 width: parent.width - 2;
 anchors.bottom: keyboard.top 
 color: "#000000"; // black 
 // http://doc.qt.io/qt-5/qinputmethod.html#
 properties focus: Qt.inputMethod.visible;
 verticalAlignment: TextInput.AlignVCenter; 

 } 

}

حل شد.

InputPanel{ 

id:inputpanel visible:active 
y:active?parent.height - inputpanel.height : parent.height 
anchors.left: parent.left 
anchors.right: parent.right 

}

TextInput{ 

 id:input inputMethodHints: Qt.ImhDigitsOnly
 focus: Qt.inputMethod.visible; 
 text: "123211" 

} 

TextInput{ 

 id:input2
 anchors.top:input.bottom
 inputMethodHints: Qt.ImhLowercaseOnly
 focus: Qt.inputMethod.visible;
 text: "123211" 

}

 

  • پسندیدن 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×