当前位置: 代码迷 >> QT开发 >> 我是QT初学者,想问个初级有关问题
  详细解决方案

我是QT初学者,想问个初级有关问题

热度:19   发布时间:2016-04-25 03:21:27.0
小弟我是QT菜鸟,想问个初级问题?
主窗口的ui  有个菜单项,里面有个菜单点击的时候调用另外一个,并且用模态打开,如果弄啊
------解决方案--------------------
这个很简单啊。
点击菜单项会发出trigger信号,
做一个槽与其对应,然后在槽里写你的需求就行了。
类似
connect(ui->action12345,SIGNAL(triggered()),this,SLOT(on_menuItem_Clicked()));

在on_menuItem_Clicked()里写你的模态打开方法
------解决方案--------------------

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void openModelDialog();

};

#endif // MAINWINDOW_H




#include "mainwindow.h"
#include <QMenu>
#include <QMenuBar>
#include <QAction>
#include <QDialog>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    QMenu *menu = menuBar()->addMenu(tr("&Open"));
    QAction *openAction = new QAction(tr("&Open"), this);
    openAction->setStatusTip(tr("Open a file"));
    connect(openAction, SIGNAL(triggered()), this, SLOT(openModelDialog()));
    menu->addAction(openAction);
}

MainWindow::~MainWindow()
{

}

void MainWindow::openModelDialog()
{
    QDialog dlg;
    dlg.exec();
}



main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

  相关解决方案