Qt connect的使用

xpsair 发布于 2013/10/29 10:41
阅读 2K+
收藏 0

qt 4.8版本,win7 64位机

QT的connect机制中,通过信号和槽来连接对象。我想连接一个slider和一个textEdit,通过slider来调节textEdit中显示的文本字体大小。

遇到的问题是slider的信号valueChanged(int)所带的参数是int类型,但textEdit中setFontPointSize的方法只能用qreal类型的参数来设置字体大小,所以,我用一个中间的槽来中转一下,强制类型转换,把int类型的slider发出的值转为qreal,然后在中间槽中用转换后的qreal传给setFontPointSize。

头文件里定义中间SLOT:

void textSize(int);
textSize(int)槽在.cpp中定义为:

void MainWindow::textSize(int p)
{
 qreal a = (qreal)p;
 QTextCharFormat fmt;
 fmt.setFontPointSize(a);
}
connet写在MainWindow的构造函数中(MainWindow由slider和textEdit这2个构件组成):

connect(slider, SIGNAL(valueChanged(int)), textEdit, SLOT(textSize(int)));
但是没有作用……

加载中
0
BobLiu
BobLiu
connect(slider, SIGNAL(valueChanged(int)), textEdit, SLOT(textSize(int)));

textEdit 改为 this.

返回顶部
顶部