1
這裏是Zetcode.com一個簡單的代碼,是我學習:應用動態的解決方案,以Pyqt5連接
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
ZetCode PyQt5 tutorial
In this example, we create a skeleton
of a calculator using a QGridLayout.
author: Jan Bodnar
website: zetcode.com
last edited: January 2015
"""
import sys
from PyQt5.QtWidgets import (QWidget, QGridLayout,
QPushButton, QApplication)
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
grid = QGridLayout()
self.setLayout(grid)
names = ['Cls', 'Bck', '', 'Close',
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+']
positions = [(i,j) for i in range(5) for j in range(4)]
for position, name in zip(positions, names):
if name == '':
continue
button = QPushButton(name)
grid.addWidget(button, *position)
self.move(300, 150)
self.setWindowTitle('Calculator')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
現在,我想套用button.setDisable
選項,每哪個按鈕被點擊。
一種方法是創建一個新列表並將每個按鈕追加到創建的列表中。從這個列表中,我們可以做到以下幾點:
button_list[0].clicked.connect(self.on_click):
button_list[1].clicked.connect(self.on_click1):
併爲每個新的方法,我們便需要定義:
def on.click(self):
button_list[0].setEnabled(False)
這是一個可行的解決方案。但是有沒有更多的動態方法來解決這個問題?
希望有任何想法。
謝謝Flippy。我發現部分功能對於進一步的發展也非常有用。 –
不客氣,祝你的代碼順利:) – Flippym