首页| 论坛| 消息

标题:点击按钮,clicked()无反应
作者:marlenechen
日期:2017-09-28 22:37
内容:

书中P29页第一段 说显示扩展对话框的实现,是:在单击more按钮时调用QPushButton中的setText()函数完成。
我写了:
QObject::connect(moreButton, SIGNAL(clicked()), this, SLOT(isClicked()));
QObject::connect(moreButton, SIGNAL(toggled(bool)), SecondaryGroupBox, SLOT(setVisible(bool)));
QObject::connect(moreButton, SIGNAL(toggled(bool)), tertiaryGroupBox, SLOT(setVisible(bool)));
……
void CSortDialog::isClicked()
{
if (moreButton->text() == "&More>>>")
{
moreButton->setText("&More>");
}
}
点击按钮后,为何没有反应?????


#1 [never_forget 09-29 08:39]
你把这个条件打印一下不就知道了 moreButton->text() == "&More>>>"
#2 [小韩老师 09-29 08:42]
"&More>>>"初始化设置了按钮文本?自己打印输出一下moreButton->text(),看看文本是否是"&More>>>",目测文本是"More>>>",自己去测试一下,通过文本比对判断,一个可以用bool标识的变量感觉好怪,我是不会这么用!
#3 [小韩老师 09-29 08:42]
"&More>>>"初始化设置了按钮文本?自己打印输出一下moreButton->text(),看看文本是否是"&More>>>",目测文本是"More>>>",自己去测试一下,通过文本比对判断,一个可以用bool标识的变量感觉好怪,我是不会这么用!
#4 [九重水 10-11 13:58]
不说有没有效果这玩意。
看楼主的意思是:点一下,然后展开某个东西。比如买电脑时选择比较条件,点之前是CPU;点了之后可选是CPU,显卡;
单纯这个功能的实现,一般不会通过按钮的文本来比较。
楼主可以借鉴《C++ GUI QT4编程》2.4节 改变形状的对话框参考。这本书是根据Group的可见性作为toogled的参数传进来。

再次强调,不要用某个button的文本作为比较。
#5 回 小韩老师 的帖子 [marlenechen 10-21 08:27]
小韩老师:"&More>>>"初始化设置了按钮文本?自己打印输出一下moreButton->text(),看看文本是否是"&More>>>",目测文本是"More>>>",自己去测试一下,通过文本比对判断,一个可以用bool标识的变量感觉好怪,我是不会 ..(2017-09-29 08:42)
你是 怎么 用的 呢?

<< 1 2 >> (1/2)

回复 发表
主题 版块