نمایش نتایج 1 تا 12 از 12

نام تاپیک: باز نشدن پنجره با کلیک دوم در qml

  1. #1
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    باز نشدن پنجره با کلیک دوم در qml

    سلام
    این یه برنامه ی ساده هست که من با qml نوشتم:

    import QtQuick 2.0
    import QtQuick.Controls 1.3
    Item {
    width: 200; height: 200


    Loader { id: pageLoader }
    Button {
    width: 50
    height: 27
    text: qsTr("کلیک کنید")
    onClicked: {
    pageLoader.source = "azmayesh.qml"
    }
    }
    }


    azmayesh.qml

    import QtQuick 2.0
    import QtQuick.Window 2.0


    Window {
    visible: true
    width: 360
    height: 360
    title: "MyWindow"


    Text {
    text: "Hello world!"
    anchors.centerIn: parent
    }
    }

    وقتی بار اول روی دکمه کلیک میکنم پنجره باز میشه ولی برای بار دوم که کلیک میکنم باز نمیشه.

  2. #2

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    برای بار دوم وقتی دکمه کلیک میشه خصوصیت source رو به همون مقداری که الان هست تغییر میده. پس اتفاقی نمی‌افته.
    بهتر نیست از Dialog استفاده کنید؟

  3. #3
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    نقل قول نوشته شده توسط حامد مصافی مشاهده تاپیک
    برای بار دوم وقتی دکمه کلیک میشه خصوصیت source رو به همون مقداری که الان هست تغییر میده. پس اتفاقی نمی‌افته.
    بهتر نیست از Dialog استفاده کنید؟
    این کار رو کردم ولی این اخطار رو میده هر چی ام سرچ کردم به نتیجه ای نرسید:
    2016/03/05 14:12:16 .:0: QQuickView only supports loading of root objects that derive from QQuickItem.


    If your example is using QML 2, (such as qmlscene) and the .qml file you
    loaded has 'import QtQuick 1.0' or 'import Qt 4.7', this error will occur.


    To load files with 'import QtQuick 1.0' or 'import Qt 4.7', use the
    QDeclarativeView class in the Qt Quick 1 module.

  4. #4

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    نقل قول نوشته شده توسط ravand مشاهده تاپیک
    سلام
    این یه برنامه ی ساده هست که من با qml نوشتم:

    import QtQuick 2.0
    import QtQuick.Controls 1.3
    Item {
    width: 200; height: 200


    Loader { id: pageLoader }
    Button {
    width: 50
    height: 27
    text: qsTr("کلیک کنید")
    onClicked: {
    pageLoader.source = "azmayesh.qml"
    }
    }
    }


    azmayesh.qml

    import QtQuick 2.0
    import QtQuick.Window 2.0


    Window {
    visible: true
    width: 360
    height: 360
    title: "MyWindow"


    Text {
    text: "Hello world!"
    anchors.centerIn: parent
    }
    }

    وقتی بار اول روی دکمه کلیک میکنم پنجره باز میشه ولی برای بار دوم که کلیک میکنم باز نمیشه.
    شما دارید یک Window رو در داخل یک Loader فراخوانی میکنید و متاسفانه این روش درستی نیست، از لودر زمانی استفاده میشه که قراره یک آیتم خاصی در همان فرم والد فراخوانی بشه.
    برای این کار به صورت زیر عمل کنید فایل main رو به صورت زیر باز نویسی کنید:


    import QtQuick 2.4
    import QtQuick.Window 2.2
    import QtQuick.Controls 1.4

    Window {
    visible: true
    id:mywindow

    Loader { id: pageLoader }
    Button {
    width: 50
    height: 27
    text: qsTr("کلیک کنید")
    onClicked: {
    var component = Qt.createComponent("qrc:/azmayesh.qml")
    var window = component.createObject(mywindow)
    window.show()
    }
    }




    }




    تغییراتی که دادم تعریف یک شناسه برای window و بعد کد های داخل onClicked هست.

  5. #5
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    چیزی که نوشتید این اخطار رو میده:

    2016/03/05 14:25:06 .:0: QQmlComponent: Component is not ready
    2016/03/05 14:25:06 alert.qml.:17: file:///F:/workspace/alert.qml.:17: TypeError
    : Cannot call method 'show' of null
    2016/03/05 14:25:08 .:0: QQmlComponent: Component is not ready
    2016/03/05 14:25:08 alert.qml.:17: file:///F:/workspace/alert.qml.:17: TypeError
    : Cannot call method 'show' of null

  6. #6

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    نقل قول نوشته شده توسط ravand مشاهده تاپیک
    چیزی که نوشتید این اخطار رو میده:

    2016/03/05 14:25:06 .:0: QQmlComponent: Component is not ready
    2016/03/05 14:25:06 alert.qml.:17: file:///F:/workspace/alert.qml.:17: TypeError
    : Cannot call method 'show' of null
    2016/03/05 14:25:08 .:0: QQmlComponent: Component is not ready
    2016/03/05 14:25:08 alert.qml.:17: file:///F:/workspace/alert.qml.:17: TypeError
    : Cannot call method 'show' of null
    نسخه Qt شما چنده؟

  7. #7
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    نسخه اش 5.5 هست.

  8. #8

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    نقل قول نوشته شده توسط ravand مشاهده تاپیک
    نسخه اش 5.5 هست.
    این رو تست کنید :

    فایل main :



    import QtQuick 2.0
    import QtQuick.Window 2.0
    import QtQuick.Controls 1.4

    Window {
    visible: true
    id:mywindow

    width: 640
    height: 480

    Button {
    width: 50
    height: 27
    text: qsTr("کلیک کنید")
    anchors.centerIn: parent
    onClicked: {
    var component = Qt.createComponent("qrc:/azmayesh.qml")
    var window = component.createObject(mywindow)
    window.show()
    }
    }




    }





    فایل فرم دوم‌:



    import QtQuick 2.0
    import QtQuick.Window 2.0


    Window {
    visible: true
    width: 360
    height: 360
    title: "MyWindow"


    Text {
    text: "Hello world!"
    anchors.centerIn: parent
    }
    }





    مسیر فایل رو هم مشخص کنید.

  9. #9

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    نقل قول نوشته شده توسط ravand مشاهده تاپیک
    نسخه اش 5.5 هست.
    این رو تست کنید :

    فایل main :



    import QtQuick 2.0
    import QtQuick.Window 2.0
    import QtQuick.Controls 1.4

    Window {
    visible: true
    id:mywindow

    width: 640
    height: 480

    Button {
    width: 50
    height: 27
    text: qsTr("کلیک کنید")
    anchors.centerIn: parent
    onClicked: {
    var component = Qt.createComponent("qrc:/azmayesh.qml")
    var window = component.createObject(mywindow)
    window.show()
    }
    }




    }





    فایل فرم دوم‌ azmayesh.qml



    import QtQuick 2.0
    import QtQuick.Window 2.0


    Window {
    visible: true
    width: 360
    height: 360
    title: "MyWindow"


    Text {
    text: "Hello world!"
    anchors.centerIn: parent
    }
    }





    مسیر فایل رو هم مشخص کنید.

  10. #10
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    باز هم همون پیغام قبلی:
    2016/03/05 15:16:53 .:0: QQmlComponent: Component is not ready2016/03/05 15:16:53 alert.qml.:20: file:///F:/workspace/alert.qml.:20: TypeError
    : Cannot call method 'show' of null

  11. #11

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    نقل قول نوشته شده توسط ravand مشاهده تاپیک
    باز هم همون پیغام قبلی:
    2016/03/05 15:16:53 .:0: QQmlComponent: Component is not ready2016/03/05 15:16:53 alert.qml.:20: file:///F:/workspace/alert.qml.:20: TypeError
    : Cannot call method 'show' of null
    نباید این خطارو بده! این خطا زمانی رخ میده که فایل مورد نظر برای Component شناسایی نشده باشه!
    برای اطمینان من دو پروژه از نوع Window و ApplicatonWindow قرار دادم فایل .pro رو باز و تست کنید.

    Project.zip

  12. #12
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    نقل قول: باز نشدن پنجره با کلیک دوم در qml

    فهمیدم مشکل از کجاست!
    من از زبان go یا همون golang برای اجرای کدهای qml استفاده میکردم. وقتی با golang تست میکردم اخطار میداد ولی وقتی با qt creator کار کردم. دیدم اصلا مشکلی پیش نمیاد و برنامه ی شما رو بخوبی اجرا میکنه.
    Dialogs هم توی go مشکل داشت ولی با qt creator مشکلی نداشت. شاید باید برای go نصب بشه.
    ممنونم.

تاپیک های مشابه

  1. مشکل در باز نشدن پروژه با ویژوال استادیو
    نوشته شده توسط ho3ein.3ven در بخش C#‎‎
    پاسخ: 5
    آخرین پست: دوشنبه 17 شهریور 1393, 20:45 عصر
  2. سوال: مشکل در باز شدن لینک با کلیک وسط
    نوشته شده توسط masoud60 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 17 تیر 1393, 16:54 عصر
  3. باز نشدن پنجره print option بعد از اجرای Execute در Rave
    نوشته شده توسط sara66 در بخش ابزارهای گزارش سازی در دلفی
    پاسخ: 2
    آخرین پست: جمعه 17 آبان 1392, 12:34 عصر
  4. سوال: ساخت contextMenuStrip و با کلیک چپ در همان جا باز بشه
    نوشته شده توسط davidrobert در بخش C#‎‎
    پاسخ: 4
    آخرین پست: شنبه 26 اسفند 1391, 18:13 عصر
  5. باز نشدن پنجره ذخیره سازی فایل در برنامه
    نوشته شده توسط rez1_mahtab در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: سه شنبه 24 مرداد 1391, 13:00 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •