• 5864阅读
  • 5回复

怎么设置用快捷键启动一个对话框,在线等,谢谢了 [复制链接]

上一主题 下一主题
离线浪迹江湖
 

只看楼主 倒序阅读 楼主  发表于: 2009-04-08
QDialog dialog =new QDialog(0);//构造一个dialog
                                         //设置dialog能用快捷键显示出来(如:ctrl+h)

在此谢谢大家了
离线浪迹江湖

只看该作者 1楼 发表于: 2009-04-08
另外头文件是什么
离线tinglan

只看该作者 2楼 发表于: 2009-04-08
引用楼主浪迹江湖于2009-04-08 09:03发表的 怎么设置用快捷键启动一个对话框,在线等,谢谢了 :
QDialog dialog =new QDialog(0);//构造一个dialog
                                         //设置dialog能用快捷键显示出来(如:ctrl+h)
在此谢谢大家了

能不能说的清楚点?是主窗体中菜单和工具条上的一个Action呢?还是单纯的键盘事件?
如果是Action,你可以编辑菜单setAccel()为Ctrl+H,然后在Action的槽函数中构造对话框就可以了;如果是键盘事件,定义virtual void keyPressEvent(QKeyEvent *e); 然后在该函数中构造dialog。
离线浪迹江湖

只看该作者 3楼 发表于: 2009-04-08
是单纯的键盘事件,谢谢tinglan
我看有人这样写:
KDialogBase * dialog = new KDialogBase( this, "NetworksDialog", true, i18n( "Manage Wireless Networks" ), KDialogBase::Ok|KDialogBase::Cancel );
        dialog->makeVBoxMainWidget();
    dialog -setShortcut( Qt::Key_F8 );
    dialog ->setShortcutContext(Qt::ApplicationShortcut);
我找了下:setShortcut在assistant没有阿,不知道头文件是什么
离线yf24518150
只看该作者 4楼 发表于: 2009-04-08
keyPressEvent() 可以的呀
离线280923299
只看该作者 5楼 发表于: 2009-04-09
不用。建立一个QAction,然后设置快捷键,连接triggered()信号到dialog的exec()槽
快速回复
限100 字节
 
上一个 下一个