WEB开发网
开发学院手机开发Symbian 开发 在 Qt Symbian 中如何修改手机的软键 (softkey) 阅读

在 Qt Symbian 中如何修改手机的软键 (softkey)

 2010-03-26 04:26:00 来源:WEB开发网   
核心提示:在做手机应用的时候经常会要碰到修改手机屏幕上软件显示的问题,比如想把”退出”改为”返回”,”取消”等,在 Qt Symbian 中如何修改手机的软键 (softkey),同时也改变选中该软键时的行为,不是标准的退出应用,右键和中键,软件上的文字则有QAction中的文本来确定,Nokia论坛上有一篇文章Change_S

在做手机应用的时候经常会要碰到修改手机屏幕上软件显示的问题,比如想把”退出”改为”返回”,”取消”等,同时也改变选中该软键时的行为,不是标准的退出应用。

Nokia论坛上有一篇文章Change_SoftKey_labels_of_widget_in_Qt 介绍了在Symbian Qt中如何处理这个问题,不过该文介绍的方法只适合Qt-4.6以前的版本,因为Qt-4.6以后的版本没有了文章所说的QWidget::setSoftKeys(), 改由另外的机制来实现。

Qt-4.6以后的版本使用QAction::setSoftKeyRole(SoftKeyRole softKeyRole),SoftKeyRole可用的值有 Action::NoSoftKey,QAction::PositiveSoftKey,QAction::NegativeSoftKey,QAction::SelectSoftKey 分别代表没有映射,左键,右键和中键。软件上的文字则有QAction中的文本来确定。软键的内容变化由当前获得焦点的Widget的QAction来确定,当然需要该QAction要执行setSoftKeyRole才能关联到软键上:)

下面是一段不长的代码,演示了如何修改手机软键

#include

class Widget:public QWidget{

public:

Widget(QWidget *parent);

};

int main(int argc,char *argv[]){

QApplication app(argc,argv);

QMainWindow mw;

Widget *w=new Widget(&mw);

mw.setCentralWidget(w);

mw.showMaximized();

return app.exec();

}

Widget::Widget(QWidget *parent):QWidget(parent){

QVBoxLayout *layout=new QVBoxLayout(this);

QPushButton *helloqt=new QPushButton(“Hello Qt”,this);

QAction *actI=new QAction(QObject::tr(“Qt”),this);

actI->setSoftKeyRole(QAction::PositiveSoftKey);

helloqt->addAction(actI);

QPushButton *hellomaemo=new QPushButton(“Hello Maemo”,this);

QAction *actII=new QAction(QObject::tr(“Maemo”),this);

actII->setSoftKeyRole(QAction::SelectSoftKey);

hellomaemo->addAction(actII);

QPushButton *hellos60=new QPushButton(“Hello S60″,this);

QAction *actIII=new QAction(QObject::tr(“S60″),this);

actIII->setSoftKeyRole(QAction::NegativeSoftKey);

1 2  下一页

Tags:Qt Symbian 如何

编辑录入:coldstar [复制链接] [打 印]
赞助商链接