当前位置: 代码迷 >> Symbian >> Qt-Symbian 一些惯用代码
  详细解决方案

Qt-Symbian 一些惯用代码

热度:8103   发布时间:2013-02-26 00:00:00.0
Qt-Symbian 一些常用代码

最近快被Qt For Symbian整疯了。总结了一些经验,分享一下。

虽然Symbian注定要在人们视野中淡去,但是她毕竟辉煌过;同时在他离去的时候,留下了Qt——一种移动平台开发的思路,写一个程序缅怀她的成功。


界面切换:
是通过Stack实现的。
建立一个QBaseWidget,然后其他界面通过继承该类,进行active和remove.至于激活以前的view就是一个栈操作。

int QBaseWidget::activatePerviousView()    {    int ret = -1;    QString currentName = stackedWidget->currentWidget()->metaObject()->className();    QString previous;        for (int i=0;i<stackedWidget->count();i++)        {        QWidget* w = stackedWidget->widget(i);        if (w->metaObject()->className()==currentName)            {            if (i>0)                {                i--;                previous = stackedWidget->widget(i)->metaObject()->className();                ret = 0;                // Remove current widget                removeWidget(currentName);                // Activate prevous widget                activateWidget(previous);                }            break;            }        }    return ret;    }
?

?

Nokia官网提供了一个例子:Qt_for_S60_QStackedWidget_Example_v1_0_en

?

2、为QWebView提供键盘指引(三版S60)

    QWebPage *page = m_view->page();    QWebSettings *settings = page->settings();    settings->setAttribute(QWebSettings::SpatialNavigationEnabled, true);

?不过SpatialNavigationEnabled是Qt4.7里才加入的,要用4.7的lib。

?

3、读取接入点:

?

#include <QNetworkSession>#include <qmobilityglobal.h>QTM_USE_NAMESPACE //使用了qmobility的APIQNetworkSession *session; 
  QNetworkConfigurationManager manager;    const bool selectIap = (manager.capabilities()& QNetworkConfigurationManager::CanStartAndStopInterfaces);    QNetworkConfiguration defaultIap = manager.defaultConfiguration();    if(!defaultIap.isValid() && (!selectIap && defaultIap.state() != QNetworkConfiguration::Active))        {            qDebug()<<"ERROR";      // let the user know that there is no access point available        }    session = new QNetworkSession(defaultIap,this);    session->open();

?

 QNetworkConfigurationManager::allConfigurations()  //可以获得所有的接入点

?4、让某个按钮获得焦点

?

QTimer::singleShot(0, button, SLOT(setFocus()));

?

?

先写这些,慢慢补充

?