• 4438阅读
  • 3回复

新手请教(自己找资料解决啦!) [复制链接]

上一主题 下一主题
离线xcue
 
只看楼主 倒序阅读 楼主  发表于: 2008-07-07
— 本帖被 XChinux 执行加亮操作(2008-07-08) —
公司突然要改一段qt程序,苦于没人干,只好我来碰碰运气了;
现在碰到一个问题:
有一个类的函数:
bool  myClass::SetFlag( )
{
    if (m_iTranType == PURCHASE)
        {
                ShowTipMsg("请刷消费卡", 0);
        }
        else
        {
                ShowTipMsg("请刷银行卡:", 0);
        }

        TrackEdit->setReadOnly(false);
        TrackEdit->isFocusEnabled();

        TrackEdit->setEchoMode(QLineEdit::Password);
        TrackEdit->setValidator(0);


        TrackEdit->setText(QString::null);
        TrackEdit->setFocus();

      if (readtrack() == 0)
                do_it();
}

现在的问题是: 当按1键调用这个函数时候, 却是先调用 readtrack(),readtrack()返回后才打印"请刷消费卡"。。 我只会一点C语言,对c++和qt不大懂。。
希望得到大家的帮助,
谢谢!
即使我把readtrack() 那段函数调用注释掉,这下打印了"请刷消费卡"了,但是还没有跳出这个SetFlag函数;是不是有个编辑框在等待着输入,所以没有跳出这个函数??
解决原理:ShowTip()函数作用是在QLabel里显示文字,现在加上了QLabelObj->QWidget::repaint()函数,强制重新绘画QLabelObj。
[ 此贴被xcue在2008-07-08 10:55重新编辑 ]
离线supwater
只看该作者 1楼 发表于: 2008-07-08
怎么解决的 说下嘛 楼主
谋事在人,成事在天!
离线mumutouv

只看该作者 2楼 发表于: 2008-07-08
ShowTipMsg应该一个基于QDialog的类显示,主要我觉得
还是在基于QDialog类的显示方面问题,建议使用exec就没有问题了
离线xcue
只看该作者 3楼 发表于: 2008-07-08
引用第2楼mumutouv于2008-07-08 14:04发表的  :
ShowTipMsg应该一个基于QDialog的类显示,主要我觉得
还是在基于QDialog类的显示方面问题,建议使用exec就没有问题了

:) 原来的ShowTipMsg定义为:
ShowTipMsg(Text, Color)
{
          TitleLabel->clear();
          TitleLabel->SetText(Text);
}
现在加上一个调用:
      TitleLabel->QWidget::repaint();  /** 强制重绘 **/
可以google,baidu一下"QT机制"
有文章说了些原理。我看不大懂, QT入门第二天。。。
快速回复
限100 字节
 
上一个 下一个