Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Meluluskan Hujah Tambahan kepada Sambungan Slot PyQt?

Bagaimanakah Saya Boleh Meluluskan Hujah Tambahan kepada Sambungan Slot PyQt?

Susan Sarandon
Lepaskan: 2024-11-23 04:46:12
asal
973 orang telah melayarinya

How Can I Pass Extra Arguments to PyQt Slot Connections?

Argumen Tambahan dalam Sambungan Slot

Soalan:

Adakah mungkin untuk menghantar pembolehubah tambahan melalui slot untuk mengubah suai tingkah laku daripada yang berkaitan fungsi?

Jawapan:

Ya, terdapat dua kaedah untuk mencapai ini:

Menggunakan Fungsi Lambda

Gunakan lambda berfungsi di dalam kaedah sambung untuk menghantar argumen tambahan kepada fungsi slot.

self.buttonGroup.buttonClicked['int'].connect(lambda i: self.input(i, "text"))

@pyqtSlot(int)
def input(self, button_or_id, DiffP):
    ...
Salin selepas log masuk

Dalam ini contoh, argumen tambahan "teks" dihantar ke fungsi slot input menggunakan fungsi lambda.

Menggunakan functools.partial

Gunakan fungsi functools.partial untuk mengikat argumen tambahan pada fungsi slot sebelum membuat sambungan.

from functools import partial

...

self.buttonGroup.buttonClicked['int'].connect(partial(self.input, "text"))

@pyqtSlot(int)
def input(self, DiffP, button_or_id):
    ...
Salin selepas log masuk

Dalam contoh ini, argumen tambahan "teks" terikat pada fungsi slot input menggunakan separa fungsi.

Kedua-dua kaedah membolehkan anda menghantar maklumat tambahan ke fungsi slot, membolehkan lebih fleksibiliti dan penyesuaian dalam aplikasi Qt anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meluluskan Hujah Tambahan kepada Sambungan Slot PyQt?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan