Tuesday 15 August 2017

Qt Qmetaobject Connectslotsbyname No Matching Signal Forex


Pertanyaan ini sudah memiliki jawaban di sini: Saya menyadari pertanyaan ini telah diajukan sebelumnya, walaupun keadaan saya sedikit berbeda dan saya tidak menemukan jawaban lain selain membantu, saya adalah orang baru dari QTCreator. Saya mencoba membangun sebuah proyek dengan QTCreator, yang dibangun dengan baik di OSX tapi saat membangunnya dengan Ubuntu, saya mendapatkan kesalahan ini: Proyek ini masih membangun dan sebagian bekerja, namun tidak akan menulis ke perangkat eksternal (titik programnya). Ada yang bisa memberi panduan tentang apa yang harus saya lakukan, jawaban sebelumnya telah mengatakan tentang hal-hal yang menghubungkan secara eksplisit, namun tidak membahas secara terperinci bagaimana melakukan ini. Ada tip untuk mencari melalui proyek untuk menemukan di mana memperbaiki ini (saya tidak menulis program asli). Setiap bantuan dihargai Tom bertanya pada tanggal 24 Juni pukul 14:07 ditandai sebagai duplikat oleh Jan Dvorak. Rene Hyde 4dgaurav Xan 24 Jun 14 at 13:06 Pertanyaan ini telah ditanyakan sebelumnya dan sudah memiliki jawaban. Jika jawaban tersebut tidak sepenuhnya menjawab pertanyaan Anda, mohon mengajukan pertanyaan baru. Hanya karena itu adalah kesalahan yang sama, tidak berarti itu adalah penyebab yang sama dan karena itu mereka karenanya tidak dikelompokkan bersama. Di link anda, mereka telah menambahkan parameter jadi tentu saja mereka tidak bisa mencocokkan. Tapi yang saya lakukan hanyalah mengganti platform (tidak ada perubahan pada kode proyek) jadi mungkin ada yang salah di sini. Ndash holmeswatson 24 Jun 14 di 10:27 Jika ini pekerjaan anak satu platform, tapi tidak pada yang lain, maka kemungkinan alasannya adalah, Anda tidak memiliki bangunan bersih di salah satu platform. Untuk membangun bersih, pertama-tama hapus semua file tambahan dari direktori sumber (misalnya menggunakan alat kontrol versi untuk menghapus semua file yang tidak berversi). Ini penting, karena compiler akan mencari beberapa file secara preferntially di bawah direktori sumber, dan jika ada file sumber yang dihasilkan basi (moc .. ui. h. dll) di sana, mereka akan digunakan sebagai pengganti yang benar di direktori build. Kemudian pastikan Anda memiliki bayangan yang diaktifkan di Qt Creator untuk proyek dan bangunannya, dan lakukan pembersihan. Atau hanya mendapatkan checkoutclone segar dari kontrol versi ke direktori bersih. Alasan lain yang mungkin adalah penggunaan ifdef menghasilkan hasil build yang berbeda pada platform yang berbeda. Atau proyek. File pro mungkin juga memiliki bagian bersyarat, menghasilkan file yang berbeda yang dibangun di platform yang berbeda, atau perintah kompilasi yang berbeda yang digunakan. Menjawab Jun 24 14 di 12:15 2017 Stack Exchange, IncI menetapkan menu QT, yang secara otomatis dihubungkan dengan fungsi aksi onactionOpentriggered (). Nantinya saya ingin mengirimkan string nama file ke fungsi ini agar bisa memanggil fungsi ini secara manual dalam kondisi spesial. Jadi saya mengubah tanda tangan fungsi menjadi onactionOpentriggered (const char filenamein). Setelah perubahan ini, program berjalan dengan baik, tapi ada yang mengeluh di terminal, QMetaObject :: connectSlotsByName: Tidak ada sinyal yang cocok untuk onactionOpentriggered (const char) Saya bertanya-tanya apa yang terjadi, dan bagaimana saya bisa menambahkan argumen untuk fungsi tindakan menu ini. Mekanisme autoconnection Qt tidak dapat menemukan sinyal yang sesuai ke slot Anda. Untuk item menu tidak ada sinyal yang sesuai dengan slot Anda dengan satu argumen, dan sinyal tidak boleh memiliki argumen yang lebih sedikit daripada slot. Anda bisa mengganti nama slot sehingga wont mencoba mencari sinyal yang cocok, dan gunakan QObject :: connect langsung bukan QMetaObject :: connectSlotsByName. Selain itu Anda harus menetapkan nilai default pada filenamein argumen Anda jika Anda ingin terhubung untuk bekerja dengan sinyal yang dipicu. Jawab 22 Jun pukul 14:09

No comments:

Post a Comment