Bagaimana cara menampilkan kotak pesan dengan tombol Ya / Tidak di Qt, dan bagaimana cara memeriksa yang mana yang ditekan?
Yaitu kotak pesan yang terlihat seperti ini:
c++
qt
qmessagebox
sashoalm
sumber
sumber
Anda dapat menggunakan objek QMessage untuk membuat Kotak Pesan lalu menambahkan tombol:
sumber
setIcon
metode bagian dariQMessageBox
objek. dengan satu jika enum ini sebagaiQMessageBox::NoIcon
QMessageBox::Question
QMessageBox::Information
parameterQT bisa sesederhana seperti di Windows. Kode yang setara adalah
sumber
Saya melewatkan panggilan terjemahan
tr
dalam jawaban.Salah satu solusi paling sederhana, yang memungkinkan internasionalisasi nanti:
Biasanya merupakan
Qt
kebiasaan yang baik untuk menempatkan String tingkat kode dalamtr("Your String")
panggilan.(
QMessagebox
seperti di atas bekerja dalamQWidget
metode apa pun )EDIT:
Anda dapat menggunakan di
QMesssageBox
luarQWidget
konteks, lihat jawaban @ TobySpeight.Jika Anda bahkan berada di luar
QObject
konteks, gantitr
denganqApp->translate("context", "String")
- Anda harus melakukannya#include <QApplication>
sumber
QMessageBox
menyertakan metode statis untuk mengajukan pertanyaan seperti itu dengan cepat:Jika kebutuhan Anda lebih kompleks daripada yang disediakan oleh metode statis, Anda harus membuat
QMessageBox
objek baru , dan memanggilexec()
metode tersebut untuk menampilkannya dalam loop kejadiannya sendiri dan mendapatkan pengenal tombol yang ditekan. Misalnya, kami mungkin ingin menjadikan "Tidak" sebagai jawaban default:sumber
QApplication
saya sarankan menggunakanqApp->translate("context", "String")
, yang menggantikantr
penggunaan di luarQObject
kelasJika Anda ingin membuatnya dengan python, Anda perlu memeriksa kode ini di meja kerja Anda. juga menulis seperti ini. kami membuat kotak popup dengan python.
sumber