我的应用程序中有两个浏览按钮。 我需要为这两个按钮执行功能browseButtonClickHandler()
。 但问题是,我怎样才能识别哪个按钮被点击? 我需要将浏览过的文件夹粘贴到文本字段。 通过ui编辑器创建信号和插槽。 我已经为这两个工作分配了它的功能。 但唯一的困难是识别按钮。 请帮助我。多个按钮的插槽
多个按钮的插槽
回答
使用QObject * QObject::sender()
来知道信号源自何处。您可以查看QSignalMapper
。在该文献中,它们都提到相同的例子作为问题
哇! 它为我工作... 'QObject * sender = QObject :: sender(); QMessageBox :: information(0,“Button”,sender-> objectName());' 得到按钮名称.. 非常感谢! – 2013-03-01 09:26:30
我会建议创建一个按钮类的子类,它有一个索引字段和一个赋予此索引值的虚函数。 我假设在browseButtonClickHandler()
你得到一个指向按钮的指针,所以把它转换到你的按钮子类并获得索引值。
对不起,我不清楚,因为我不是qt专家。我只是一个初学者。你的子类是什么意思,请告诉我函数如何获得指向按钮的指针? – 2013-03-01 08:15:23
你创建一个从'QButton'继承的类,添加一个私有变量(例如'int buttonIndex'),创建一个具有int参数的构造函数。当你创建按钮时,你必须在构造函数中指定索引。当你执行一个获得这样的按钮作为参数的函数时,你可以得到它的索引,例如用这样的函数(把它放在继承的类中):int getIndex(){return buttonIndex; }'。我假设你将这些按钮与代码放在一起,而不是用Qt Designer。 – Gandras 2013-03-01 09:25:24
使用QButtonGroup。也许这个链接可以帮助。
http://doc.qt.io/qt-4.8/qbuttongroup.html#id
- 1. 连接按钮mainwindows插槽
- 2. 对应一个带有阵列插槽的按钮
- 3. 同一个按钮如何调用不同的插槽?
- 4. 等待按钮点击按钮点击移动按钮到tkinter插槽
- 5. PySide一个插槽多个部件
- 6. PyQt5一个信号和多个插槽
- 7. Qt的按钮被调用2个插槽和我只需要一个
- 8. Qt多个webview处理单插槽
- 9. Aurelia:模板中有多个插槽?
- 10. 多个(但不是全部)卡插槽
- 11. 调用两次Qt的按钮插槽,尽管禁用
- 12. 将插槽连接到QDialogButtonBox中的按钮
- 13. 如何访问插槽内的按钮组成员?
- 14. 如何删除Qt Widgets中插槽的按钮
- 15. 多个按钮按
- 16. 多个按钮
- 17. 多个按钮
- 18. 多个按钮
- 19. 多个按钮?
- 20. 防止连接到一个插槽(“真的”专用插槽)
- 21. 无法添加插槽并将其连接到按钮
- 22. 合并所有按钮,文本,检查按钮将事件变成一个单一的插槽
- 23. Qt转发插槽/连接插槽到插槽?
- 24. 在qt中创建一个插槽,以对点击按钮作出反应
- 25. 按下多个Tkinter按钮
- 26. 多个按钮,每个按钮都延伸到多个ViewControllers
- 27. 有多个按钮
- 28. 与多个按钮
- 29. 多个form_open按钮
- 30. 多个zeroclipboard按钮
一个不重要的解决方案是使用两个以上槽的功能:'browseButton1ClickHandler(){button1Clicked(); browseButtonClickHandler();}'。但是,我的qt技巧非常糟糕,所以我必须阅读文档以获得更好的解决方案。 – Zeta 2013-03-01 08:06:31
如果需要创建两个更多的插槽,那么最好为这两个按钮创建两个单独的插槽。我需要将其简化为单一功能。这就是为什么我问。 – 2013-03-01 08:10:03