Pertanyaan Bagaimana cara menonaktifkan atau menyembunyikan tombol Kembali di QWizard?


Saya ingin menonaktifkan atau menyembunyikan tombol Kembali di dialog QWizard. Bagaimana saya bisa melakukannya?


5
2018-01-31 00:04


asal


Jawaban:


Saya telah melihat sumber Qt dan menemukan bahwa mungkin untuk menyembunyikan tombol Kembali dengan membuat tata letak tombol khusus dan menekan tombol Kembali di daftar:

  QList<QWizard::WizardButton> button_layout;
  button_layout << QWizard::HelpButton << QWizard::Stretch <<
                   QWizard::NextButton << QWizard::CustomButton1 <<
                   QWizard::CancelButton;
  this->setButtonLayout(button_layout);

Saya berharap ini akan menghemat waktu untuk seseorang.

P.S.

AFAIU untuk menghindari penggunaan QTimer diperlukan untuk memodifikasi kode sumber QWizard. Cara mudahnya adalah menambahkan fungsi virtual virtual void buttonsUpdated (); dan hubungi dari akhir QWizard's: membatalkan QWizardPrivate :: _ q_updateButtonStates () Kemudian reimplement ini buttonsUpdated () di subwoofer QWizard Anda dan nonaktifkan tombol Back di sana.


5
2018-01-31 00:06



Panggilan

QWizard::button(QWizard::BackButton).hide()

di

QWizard::onCurrentIdChanged(int)

bekerja untuk saya (dalam PyQt4).

Ini secara efektif menyembunyikan tombol kembali lagi di setiap halaman wizard, tetapi ini mencapai efek yang diinginkan.


5
2018-01-16 22:39



Cara alternatif (mungkin lebih berorientasi pada kerangka) adalah dengan mengatur QWizardPage, yang muncul sebelum halaman yang Anda inginkan tombol kembali menjadi dinonaktifkan, menjadi halaman commit. Telepon saja this.setCommitPage(true) pada QWizardPage dan halaman berikutnya tidak akan mengaktifkan tombol back-nya.

dari Dokumentasi QWizardPage

membatalkan QWizardPage :: setCommitPage (bool commitPage) Menetapkan halaman ini menjadi halaman commit jika commitPage benar; jika tidak, setel menjadi a   halaman normal. Halaman commit adalah halaman yang mewakili tindakan yang   tidak dapat diurungkan dengan mengklik Kembali atau Batal. Tombol Komit menggantikan   tombol Berikutnya pada halaman commit. Mengklik tombol ini cukup dengan panggilan   QWizard :: next () sama seperti mengklik Next.    Halaman yang dimasukkan langsung dari halaman commit memiliki tombol Back dinonaktifkan. Lihat juga isCommitPage ().

Jika Anda ingin semua tombol kembali dinonaktifkan, Anda cukup memanggilnya di setiap halaman.


1
2018-02-09 07:53