多个定时器共享一个槽函数非常简单,就把这些定时器的timeout信号全部链接到同一个槽不就行了
但是timeout信号是没有带参数的所以没办法利用timeout信号来传参,但是你可以这么做在槽函数里面 调用 sender() 就能获取发送信号的 QObject 再与定时器比对下就能确定是哪个定时器发送的超时信号了
信号和槽如果要传递参数就要确保参数类型和个数的一致
你这里槽函数里面有形参
但信号里面并没有传递过来
所以就连接不到一起
而且连接的时候只要写明参数的类型就可以了
你这里tcpsocket应该是对象名吧
这样就不对了
举个例子
connect(btn,
signal(
clicked(bool)
),
this,
slot(
onclicked(
bool
)
));
//这么客气都不好意思不回答
//在button的槽函数中加入以下语句
switch(comboboxcurrentIndex())
{
case 0: m_pWnd = new MyWindow1(/参数/);//窗口1
break;
case 1: m_pWnd = new MyWindow2(/参数/);//窗口2
break;
//todo
}
//todo
//显示那个窗体
m_pWndshow();
/补充
我晕,这要看你怎么定义那两个窗口类了,一般都是继承自QWidget或者
QDialog类的,构造方法一般就一个参数QWidget parent,此时传入this
就可以了。
/
获取点击数字的字符串,就是把点击的数字显示在label(你的显示框)中,在点击运算符的同时表明数字已经输入完毕,用字符串数组存储起来,同时存储运算符,以此类推,在点击等于按钮的时候表明所有数字和运算符输入完毕,那么在等于的槽函数中解析字符串数组,并把字符转转为int 或float 或者double类型,使用开关语句获取运算符,然后进行相应的运算,并把最终结果转为字符串显示在你的显示屏上面。
希望对你有所启发
是否添加了Q_OBJECT宏
如:
class btn: public QPushButton{ Q_OBJECT };是否声明和定义了槽onClicked
如:
public slots:void onClicked();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)