我应该提到我读过这些,但我仍然无法实现我的目标:
我的目标是制作一个linux‘启动器’应用程序。按钮的创建、放置等工作起来很有魅力,但有一个问题-所有按钮都会触发同一个回调-最后一个要连接到按钮创建循环中。在
下面是脚本的一个基本版本来说明我要做的:class App(QMainWindow):
def launch(self, filepath):
subprocess.run(filepath)
def __init__(self):
super(App, self).__init__()
for btn in matrix:
filepath = matrix[btn]['path']
icon = matrix[btn]['setIcon']
posx = matrix[btn]['posx']
posy = matrix[btn]['posy']
matrix[btn] = QToolButton(self)
matrix[btn].setIcon(QIcon(icon))
matrix[btn].setIconSize(QSize(64, 64))
matrix[btn].resize(100, 100)
matrix[btn].move(posx, posy)
matrix[btn].clicked.connect(lambda launch: self.launch(filepath))
self.initUI()
def initUI(self):
self.setGeometry(150, 150, 1250, 650)
self.setWindowTitle('LinuxLauncher')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
我知道有答案,但我已经做了几个小时了-我很感激有人能帮我摆脱困境-谢谢!在