• 5604阅读
  • 1回复

关于用Designer设计菜单及其Action、Slot的问题! [复制链接]

上一主题 下一主题
离线sharkmouse
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-13
— 本帖被 XChinux 从 Qt for Linux/X11 移动到本区(2010-02-08) —
  刚刚学习QT,用Designer设计时,发现可以创建菜单及子菜单,并且可以针对每个菜单项添加一个Action,并且针对此菜单添加一个Slot,但是好像并没有作用。不知道为什么?
  在VS中,添加一个菜单项“系统”,对象名为:menuSYSTEM,形成下面的代码:
  menuSYSTEM = new QMenu(menuBar);
        menuSYSTEM->setObjectName(QString::fromUtf8("menuSYSTEM"));
   添加actionSystem中,其中Action的Text属性为'系统'。代码如下:
  actionSysterm = new QAction(MainWindow);
        actionSysterm->setObjectName(QString::fromUtf8("actionSysterm"));
        menuBar->addAction(menuSYSTEM->menuAction());
  添加SLOT后,代码如下:
  QObject::connect(actionSystem,SIGNAL(triggered()),MainWindow,SLOT(close());
        
        此时仍然没有作用。尝试修改'ui_Mainwindow.h'中的
    menuBar->addAction(menuSYSTEM->menuAction());
       为
    menuBar->addAction(actionSystem);
       这样菜单就可以作用了。
  但修改改'ui_Mainwindow.h'中的代码并不是正常的途径,不知道有其他办法没有?
  请求高手帮忙。
[ 此帖被sharkmouse在2010-01-13 22:48重新编辑 ]
离线wd007

只看该作者 1楼 发表于: 2010-01-21
手动修改ui_xxx.h是不推荐的。

把信号和槽正确的关联起来,应该就行了。

Qt中有一种信号和槽的自动关联的方法,需要根据窗口部件的命名来实现,具体可以查阅文档
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个