Apa yang harus digunakan dengan Qt untuk windows independen: QDialog, QWindow atau QMainWindow?

Saya membuat langkah pertama saya dengan Qt. Sebagai latihan, saya menulis GUI untuk prosesor dengan banyak inti, dan masing-masing inti ditampilkan di jendela terpisah. Dari jendela ini, mungkin ada beberapa salinan, dengan kehidupannya sendiri-sendiri, termasuk menu, baris status, dll. Artinya, salinan tersebut pada dasarnya seperti QMainWindow, tetapi memiliki QMoreMainWindow :). Mungkinkah ada efek samping jika saya menggunakan QMainWindow beberapa kali?


person katang    schedule 18.02.2016    source sumber


Jawaban (2)


Tidak ada yang menghalangi Anda untuk menggunakannya untuk apa pun. Mereka memang memiliki peran dan properti yang berbeda:

  • QMainWindow hanya itu: jendela utama. Ia memiliki toolbar, widget dok, bilah menu, bilah status, dan widget pusat. Jika Anda tidak memerlukan semua (sebagian besar) hal tersebut, Anda jelas tidak menginginkan QMainWindow.
  • QWindow adalah objek barebone yang berguna jika Anda tidak mau /membutuhkan fungsionalitas QWidget.
  • QDialog dimaksudkan untuk digunakan untuk jendela pop-up (yaitu "dialog ") seperti kotak pesan atau dialog file terbuka.
  • QWidget adalah jendela dasar atau elemen jendela. Jika ragu, gunakan ini.

Membaca pertanyaan Anda, sepertinya Anda ingin setiap jendela tersebut menjadi QMainWindow. Catatan Saya masih lebih memilih QWidget khusus dengan hanya suku cadang yang saya perlukan jika saya jadi Anda. Menambahkan bilah status dan menu bukanlah kode yang banyak.

person rubenvb    schedule 18.02.2016

beberapa jendela utama tidak ada masalah sama sekali. Saya juga menggunakannya di aplikasi saya dan berfungsi dengan baik. Anda dapat memiliki jendela utama secara terpisah (tanpa induk) atau bergantung pada beberapa jendela utama utama, sehingga jendela tersebut ditutup ketika jendela utama utama ditutup.

Ketika jendela utama Anda memiliki kehidupan dan menu independen, baris status, dll., ini lebih berlaku untuk beberapa jendela utama yang mungkin semuanya tidak memiliki induk yang ditetapkan.

Jadi, ya, pendekatan Anda tampaknya baik-baik saja bagi saya.

person IceFire    schedule 18.02.2016