逛奔的蜗牛

我不聪明,但我会很努力

   ::  :: 新随笔 ::  ::  :: 管理 ::
http://qt.nokia.com/products/appdev/add-on-products/catalog/4
在single application中, main函数里很奇怪, 要有一个能产生moc的类才行, 继承一个QTextEdit, 然后使用Q_OBJECT, 生成main.moc, 在#include "main.moc", 就可以了.

#include <qtsingleapplication.h>

#include <QtGui/QTextEdit>


class TextEdit : public QTextEdit

{

    Q_OBJECT

public:

    TextEdit(QWidget *parent = 0)

        : QTextEdit(parent)

    {}

public slots:

    void append(const QString &str)

    {

        QTextEdit::append(str);

    }

};


#include "main.moc"


int main(int argc, char **argv)

{

    QtSingleApplication instance(argc, argv);

    if (instance.sendMessage("Wake up!"))

return 0;


    TextEdit logview;

    logview.setReadOnly(true);

    logview.show();


    instance.setActivationWindow(&logview);


    QObject::connect(&instance, SIGNAL(messageReceived(const QString&)),

    &logview, SLOT(append(const QString&)));


    return instance.exec();

}


posted on 2009-08-27 22:42 逛奔的蜗牛 阅读(1519) 评论(1)  编辑 收藏 引用 所属分类: Qt

评论

# re: Qt: Qt的一些solution, 如程序只有单个实例等 2009-12-18 14:15 Cheng
这个问题不是QtSingleApplication的问题。在Qt文档里面写了的,如果你要在cpp文件中使用Q_OBJECT宏,必须显式地include这个moc文件,在h文件中就不需要。  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理