• 3951阅读
  • 4回复

请教QT前辈一个小问题 [复制链接]

上一主题 下一主题
离线浪迹江湖
 

只看楼主 倒序阅读 楼主  发表于: 2009-03-20
1.setText(tr("%1").arg(0));里面的参数是什么意思,我不明白

2。
QString tempStr;
tempStr = edit->text();
if(tempStr.length() < edit->maxLength())
  tempStr += ((QPushButton *)sender())->text();//这最后一句是什么意思阿,觉得这结构有些复杂,能不能解释下

望前辈们帮帮忙,在此感谢了
离线浪迹江湖

只看该作者 1楼 发表于: 2009-03-20
bool CWidget::event(QEvent *e)
{
if(e->type() == QEvent::KeyPress)
{
  QKeyEvent *KeyEvent = static_cast<QKeyEvent*>(e);
还有上面几句我也不太明白,谢谢了
离线bingoking
只看该作者 2楼 发表于: 2009-03-20
1:assistant上的例子
QString i;           // current file's number
QString total;       // number of files to process
QString fileName;    // current file's name

QString status = QString("Processing file %1 of %2: %3") .arg(i).arg(total).arg(fileName);
其中,1,2,3代表了后面选择3个arg()内的参数的位置。
2:((QPushButton *)sender())这个应该是用在signal-slot中的吧,一般写在slot函数中,sender()可以获得发出信号的那个object,(QPushButton *)做的是类型转换,不过我看qt一般是这样写的:qobject_cast<QPushButton *>sender(),把发送信号的object转换为QPushButton*类型的指针。
离线bingoking
只看该作者 3楼 发表于: 2009-03-20
引用第1楼浪迹江湖于2009-03-20 10:01发表的  :
bool CWidget::event(QEvent *e)
{
if(e->type() == QEvent::KeyPress)    //判断事件的类型是不是KeyPress
{
  QKeyEvent *KeyEvent = static_cast<QKeyEvent*>(e);  //如果是,把event转化为QKeyEvent*类型,这里用到了static_cast,这就是标准c++的类型转换了,qt里有qobject_cast,
                                                 //只能对从qobject继承的对像作转换
.......

-------------------------------------
这段代码是重新实现了qwidget对键盘事件的处理。
离线浪迹江湖

只看该作者 4楼 发表于: 2009-03-20
论坛好心人真多!在此对楼上两位表示感谢
基础不好,还是迷糊,在仔细想想
快速回复
限100 字节
 
上一个 下一个