• 9904阅读
  • 5回复

QAction的setChecked()会emit triggered ( bool checked = false ) 吗?【已解决】 [复制链接]

上一主题 下一主题
离线ding404
 
只看楼主 倒序阅读 楼主  发表于: 2010-06-03
小弟刚学QT不久,最近在看C++ GUI Program Qt4一书,在第三章有一个showGridAction。在函数readSetting中有一句showGridAction->setChecked(showGrid);,不知道这句代码会不会发射 triggered ( bool checked = false ) 信号,我自己写的代码没有发,但网上下载的教程代码能发,有高手能指教一下吗?
[ 此帖被ding404在2010-06-04 09:55重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2010-06-03
引用楼主ding404于2010-06-03 10:25发表的 QAction的setChecked()会emit triggered ( bool checked = false ) 吗? :
小弟刚学QT不久,最近在看C++ GUI Program Qt4一书,在第三章有一个showGridAction。在函数readSetting中有一句showGridAction->setChecked(showGrid);,不知道这句代码会不会发射 triggered ( bool checked = false ) 信号,我自己写的代码没有发,但网上下载的教程代码能发,有高手能指教一下吗?
 
多看看manual:  http://doc.qt.nokia.com/4.6/qaction.html#trigger


void QAction::triggered ( bool checked = false )   [signal]
This signal is emitted when an action is activated by the user; for example, when the user clicks a menu option, toolbar button, or presses an action's shortcut key combination, or when trigger() was called. Notably, it is not emitted when setChecked() or toggle() is called.
离线ding404
只看该作者 2楼 发表于: 2010-06-03
我看过manuel的,确实是说不会发,但是网上下的示例代码确实发了。
就是第三章的Qt\qt-book\chap03代码,我也很迷惑呀。
离线ding404
只看该作者 3楼 发表于: 2010-06-03
我把代码上传一下,这个代码在readSetting中有一句showGridAction->setChecked(showGrid)事后会触发triggered ( bool checked = false ) 信号,然后spreadsheet 的setShowGrid slot会被调用,很奇怪
描述:网上下的教程代码
附件: spreadsheet.rar (27 K) 下载次数:2
离线dbzhang800

只看该作者 4楼 发表于: 2010-06-03
不妨认真看看 spreadsheet 中用的什么信号!
离线ding404
只看该作者 5楼 发表于: 2010-06-03
果然是信号用错了,才粗心了,没仔细看。  connect(showGridAction, SIGNAL(toggled(bool)),  spreadsheet, SLOT(setShowGrid(bool)));
这句我把toggled信号写成triggered的信号了,谢谢大侠指点。
快速回复
限100 字节
 
上一个 下一个