Proyek GUI saya di Qt
memiliki banyak kelas "halaman konfigurasi" yang semuanya diturunkan langsung dari QWidget
.
Baru-baru ini, saya menyadari bahwa semua kelas ini berbagi 2 slot commons ( loadSettings()
dan saveSettings()
).
Mengenai ini, saya punya dua pertanyaan:
- Apakah masuk akal untuk menulis kelas abstrak dasar menengah (sebut saja
BaseConfigurationPage
) dengan dua slot ini sebagai metode murni virtual? (Setiap halaman konfigurasi yang memungkinkan akan selalu memiliki dua metode ini, jadi saya akan mengatakan "ya") - Sebelum saya melakukan perubahan besar dalam kode saya (jika saya harus): apakah Qt mendukung slot murni virtual? Apakah ada yang harus saya waspadai?
Berikut adalah contoh kode yang menjelaskan semuanya:
class BaseConfigurationPage : public QWidget
{
// Some constructor and other methods, irrelevant here.
public slots:
virtual void loadSettings() = 0;
virtual void saveSettings() = 0;
};
class GeneralConfigurationPage : public BaseConfigurationPage
{
// Some constructor and other methods, irrelevant here.
public slots:
void loadSettings();
void saveSettings();
};
sumber
obj-ptr, member-func-ptr, obj-ptr, member-func-ptr
versiconnect
, tidak ada slot Anda yang perlu dideklarasikan seperti itu.Hanya slot di BaseConfigurationPage
sumber