Klik butang PyQt4 daftar berbilang kali apabila diklik

WBOY
Lepaskan: 2024-02-09 18:00:05
ke hadapan
617 orang telah melayarinya

Klik butang PyQt4 daftar berbilang kali apabila diklik

Kandungan soalan

Saya baru menggunakan pyqt4 dan selepas banyak carian saya tidak menemui maklumat tentang isu yang saya lihat dalam gui.

Masalahnya ialah apabila pengguna mengklik butang getsingleitems, fungsi tersebut berjalan dengan bilangan kali yang sama seperti pengguna mengklik getallitems . Contohnya ialah jika pengguna mengklik getallitems untuk mengisi medan item dan kemudian mengklik getsingleitem, kemudian getitem berjalan sekali dan hasilnya dicetak sekali seperti yang diharapkan. Walau bagaimanapun, jika pengguna memilih item lain daripada senarai dan mengklik getallitems sekali lagi, dan kemudian mengklik getsingleitem, hasilnya ialah getitem berjalan 2x, jadi 2x dicetak. Setiap larian akan meningkat, jadi walaupun tanpa mengubah pemilihan, mengklik getallitems 4x dan kemudian getitem akan berjalan 4x dengan mengklik getsingleitem. Satu-satunya cara untuk menyegarkannya ialah menutup gui dan membukanya semula. Sebarang bantuan amatlah dihargai.

class UpdateItem(QDialog, updateitem_ui.Ui_updateitem):
    def __init__(self):
        QDialog.__init__(self)
        self.setupUi(self)

        tests = ['Test1', 'Test2', 'Test3']

        self.list.addItems(tests)
        self.exit.clicked.connect(self.close)

        self.setFocus()

        self.getAllItems.clicked.connect(self.getitems)

    def getitems(self):
        self.items.clear()

        self.items.addItems(self.list.currentText())

        self.getSingleItem.clicked.connect(self.getitem)

    def getitem(self):
        self.item_id = self.items.currentText()
        print(self.item_id)

app = QApplication(sys.argv)
gui = UpdateItem()
gui.show()
app.exec_()
Salin selepas log masuk


Jawapan betul


Nampaknya anda sedang menjalankan sambungan baharu setiap kali getitems 时添加到 getsingleitem.clicked, Jadi clicked isyarat disambungkan ke slot yang sama beberapa kali, Ini mengakibatkan tingkah laku yang anda perhatikan.

Talian mudah alih

self.getSingleItem.clicked.connect(self.getitem)
Salin selepas log masuk

Dari getitems__init__ sepatutnya menyelesaikan masalah ini, saya rasa.

Atas ialah kandungan terperinci Klik butang PyQt4 daftar berbilang kali apabila diklik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!