• 5112阅读
  • 7回复

slot与paintEvent! [复制链接]

上一主题 下一主题
离线natuly
 
只看楼主 正序阅读 楼主  发表于: 2009-09-29
现在已经自己定义好slot了,与button的clicked信号相连,然后在paintEVENT里,通过if (slot)语句来判断点击了哪个按钮,从而绘制不同的图形。现在的问题是,不用点击,slot 就直接就执行了,然后再点击按钮也没反应,没搞明白怎么回事。还请各位高手指点迷津,谢了。
离线natuly
只看该作者 7楼 发表于: 2009-09-30
引用第5楼dbzhang800于2009-09-29 22:32发表的  :
你在哪儿看到的这种按说呢?
slot 就是一个函数,你调用它当然它要执行了。
.......

我基础不太好,c++很烂
离线wangxinus

只看该作者 6楼 发表于: 2009-09-30
你绑定了signal, signal发生的时候就会执行slots.
你直接调用slots函数, 肯定也是一定会执行的。。。。

加变量吧。
bool button1Press;

//../
if (button1Press)
{
   // draw here...
}
http://www.wangxinus.com
自己刚刚开的博客,欢迎来访!征友链!

网心幽思 - WangXinus' Home
不积跬步,无以致千里;不积小流,无以成江海。
离线dbzhang800

只看该作者 5楼 发表于: 2009-09-29
引用第4楼natuly于2009-09-29 22:20发表的  :
按说showpage1(slot)是在clicked(signal)以后,才会执行啊,现在是不点左键,没有信号也执行了。


你在哪儿看到的这种按说呢?

slot 就是一个函数,你调用它当然它要执行了。

换句话说,如果你认为它不是函数,那么 showpage1() 又能是C++中的那种语法?

建议不妨好好去看看 manual,也好好看看C++
离线natuly
只看该作者 4楼 发表于: 2009-09-29
按说showpage1(slot)是在clicked(signal)以后,才会执行啊,现在是不点左键,没有信号也执行了。
离线dbzhang800

只看该作者 3楼 发表于: 2009-09-29
额,showpage1() 这就是标准的函数调用嘛。 不执行才怪了。

你应该加个成员变量,slot函数中设置变量的值,paintEvent函数中判断变量的值
离线natuly
只看该作者 2楼 发表于: 2009-09-29
就是定义一个slot
bool showpage1()
{
。。。
return true
}
if (showpage1())
大体这么个形式。
离线dbzhang800

只看该作者 1楼 发表于: 2009-09-29
if (slot)语句 是什么样的语句?
快速回复
限100 字节
 
上一个 下一个