• 3848阅读
  • 1回复

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

上一主题 下一主题
离线sharkmouse
 
只看楼主 正序阅读 楼主  发表于: 2010-01-16
刚刚学习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'中的代码并不是正常的途径,不知道有其他办法没有?
  请求高手帮忙。
离线yangfanxing
只看该作者 1楼 发表于: 2010-01-16
为了确保signa-slot的可用,个人建议不要在ui设计时做这个连接;
在类的初始化里边自己把这个连接加上。这样就ok了~

就相当于把你在ui_*.h中做的修改移到类的初始化文件中~
PHPWind好恶心。。。不想看这种界面。。。
快速回复
限100 字节
 
上一个 下一个