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()));
先写这些,慢慢补充