Qt-Symbian 一些惯用代码

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的API




QNetworkSession

 

*

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()));

 

 

先写这些,慢慢补充