当前位置: 技术问答>linux和unix
QT 获取菜单焦点
来源: 互联网 发布时间:2016-06-23
本文导语: 大家好,小弟初学qt,有两个问题不太明白,还请大家多多指教! 1. qt如何获取菜单焦点? 2. 如何使用组合键? 对于第一个问题,我可以用以下方法获取按钮焦点,但菜单的不行,代码如下: //主窗口类 class mymainw...
大家好,小弟初学qt,有两个问题不太明白,还请大家多多指教!
1. qt如何获取菜单焦点?
2. 如何使用组合键?
对于第一个问题,我可以用以下方法获取按钮焦点,但菜单的不行,代码如下:
//主窗口类
class mymainwindow : public QWidget
{
public:
mymainwindow();
private:
QPopupMenu *file;
QPopupMenu *edit;
QMenuBar *menubar;
QPushButton *pa;
QPushButton *pb;
QPushButton *pc;
QPushButton *pd;
};
/****************************************************************************
【功能说明】调整窗口大小
****************************************************************************/
mymainwindow::mymainwindow()
{
resize(240,320);
file=new QPopupMenu();
file->setGeometry(10,0,20,60);
file->insertItem("Quit",qApp,SLOT(quit()));
file->insertItem("Open");
file->insertItem("Save");
file->insertItem("New");
edit=new QPopupMenu();
edit->setGeometry(30,0,20,60);
edit->insertItem("Cut");
edit->insertItem("Copy");
edit->insertItem("Delete");
edit->insertItem("Paste");
menubar=new QMenuBar(this);
menubar->setGeometry(10,0,40,60);
menubar->insertItem("File",file);
menubar->insertItem("Edit",edit);
pa = new QPushButton( "Quit", this );
pa->setGeometry(70,80,100,60);
pa->setFont( QFont( "Times", 18, QFont::Bold ) );
connect(pa,SIGNAL(clicked()), qApp, SLOT(quit()));
pc = new QPushButton( "button3", this );
pc->setGeometry(70,160,100,60);
pc->setFont( QFont( "Times", 18, QFont::Bold ) );
pd = new QPushButton( "button4", this );
pd->setGeometry(70,240,100,40);
pd->setFont( QFont( "Times", 18, QFont::Bold ) );
setFocusPolicy(QWidget::TabFocus);//通过tab来接收键盘焦点
setFocus();
}
这样,按下tab键,可以选中button按钮,但菜单死活选不中。
对于第二个问题,我想用shift + tab 键实现向上选择按钮,但是不行,键盘插件是自己写的,平台是2440+gpio扫描键盘;
1. qt如何获取菜单焦点?
2. 如何使用组合键?
对于第一个问题,我可以用以下方法获取按钮焦点,但菜单的不行,代码如下:
//主窗口类
class mymainwindow : public QWidget
{
public:
mymainwindow();
private:
QPopupMenu *file;
QPopupMenu *edit;
QMenuBar *menubar;
QPushButton *pa;
QPushButton *pb;
QPushButton *pc;
QPushButton *pd;
};
/****************************************************************************
【功能说明】调整窗口大小
****************************************************************************/
mymainwindow::mymainwindow()
{
resize(240,320);
file=new QPopupMenu();
file->setGeometry(10,0,20,60);
file->insertItem("Quit",qApp,SLOT(quit()));
file->insertItem("Open");
file->insertItem("Save");
file->insertItem("New");
edit=new QPopupMenu();
edit->setGeometry(30,0,20,60);
edit->insertItem("Cut");
edit->insertItem("Copy");
edit->insertItem("Delete");
edit->insertItem("Paste");
menubar=new QMenuBar(this);
menubar->setGeometry(10,0,40,60);
menubar->insertItem("File",file);
menubar->insertItem("Edit",edit);
pa = new QPushButton( "Quit", this );
pa->setGeometry(70,80,100,60);
pa->setFont( QFont( "Times", 18, QFont::Bold ) );
connect(pa,SIGNAL(clicked()), qApp, SLOT(quit()));
pc = new QPushButton( "button3", this );
pc->setGeometry(70,160,100,60);
pc->setFont( QFont( "Times", 18, QFont::Bold ) );
pd = new QPushButton( "button4", this );
pd->setGeometry(70,240,100,40);
pd->setFont( QFont( "Times", 18, QFont::Bold ) );
setFocusPolicy(QWidget::TabFocus);//通过tab来接收键盘焦点
setFocus();
}
这样,按下tab键,可以选中button按钮,但菜单死活选不中。
对于第二个问题,我想用shift + tab 键实现向上选择按钮,但是不行,键盘插件是自己写的,平台是2440+gpio扫描键盘;
|
1. qt如何获取菜单焦点?
获取菜单焦点?
bool hasFocus () const可以判断每个控件的焦点状况啊
2. 如何使用组合键?
http://cool.worm.blog.163.com/blog/static/6433900620096134614462/
获取菜单焦点?
bool hasFocus () const可以判断每个控件的焦点状况啊
2. 如何使用组合键?
http://cool.worm.blog.163.com/blog/static/6433900620096134614462/