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