`
qimo601
  • 浏览: 3446545 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Qt 菜单调用窗口

    博客分类:
  • Qt
阅读更多

通过Qt的菜单选项调用另外一个子窗口,有两种方法:

VS 2008 +Qt4.7

项目文件:

MainWindow.ui

MainWindow.h

MainWindow.cpp

 

1、手动调用窗口

a)、在MainWindow.h中声明两个函数,在MainWindow.cpp中定义该两个函数。

 

void MainWindow::createActions()
{
    newAction = new QAction(tr("&New"), this);
    newAction->setIcon(QIcon(":/images/new.png"));
    newAction->setShortcut(QKeySequence::New);
    newAction->setStatusTip(tr("Create a new spreadsheet file"));
    connect(newAction, SIGNAL(triggered()), this, SLOT(newForm()));
    //绑定了该菜单选项打开窗口事件
}

 

 

//打开新窗口槽函数
void MainWindow::newForm()
{
    examinationForm = new ExaminationForm();
    examinationForm->show();
}
//examinationForm 在MainWindow.h里已经声明为成员变量。

  b)、在MainWindow.cpp 类的构造器中调用creatActions()即可打开菜单选项对应的窗口

 

2、可以利用Qt自身的机制

    在MainWindow.ui生成的临时文件ui_MainWindow.h文件中,有句:

 

 

QMetaObject::connectSlotsByName(MainWindowClass);

 

    根据Qt自身的机制,我们只需要在MainWindow.h和MainWindow.cpp中写一个槽函数即可,但必须以一下固定格式

void on_<object name>_<signal name>(<signal parameters>);

 

 

 

//MainWindow.h
private slots:
        //打开新界面
        void on_newFormAction_triggered();
    
//Maindow.cpp
//打开界面
void MainWindow::on_newFormAction_triggered()
{	
    newForm = new NewForm ();
    newForm ->show();
}

 

 

明显第二种比较方便,也比较类似MFC。

0
1
分享到:
评论

相关推荐

    Qt中调用MFC对话框

    QT是一个跨平台应用程序和UI开发框架。windows开Qt开发方法:一、Qt Creator+MinGW 或者 Qt Creator+VC++ Compiler二、QT4.8.5 for Windows(VS2015+VS...本实例为VS2015+Qt+Qt插件中开发Qt应用程序同时调用MFC对话框。

    MFC调用QT页面

    本文将深入探讨如何在MFC应用中调用QT界面,以及相关的关键知识点。 首先,理解MFC调用QT页面的核心原理:通过创建一个动态链接库(DLL)来实现MFC与QT的交互。QT工程被封装到DLL中,然后在MFC应用中通过接口调用...

    QTMenu_窗口_QT菜单_QT_子菜单_

    QTMenu是QT库中关于创建窗口菜单和...总之,QTMenu_窗口_QT菜单_QT_子菜单的主题涵盖了QT GUI编程的基础知识,对初学者而言是一块很好的敲门砖。通过深入学习和实践,你将能够创建出功能丰富、用户体验良好的应用程序。

    qt 父子窗口切换

    qt 工程文件 实现父子窗口之间的切换 主要步骤如下: 1.在子窗口的cpp源文件中(childwindow.cpp),声明一个自定义信号(void mysignal()) 和 一个用于发送自定义信号的自定义槽函数( void sendMysignal() )。 2.在...

    Qt嵌入子Qt程序窗口到当前程序

    首先,理解Qt Widgets是Qt库提供的一种用于构建桌面应用的UI框架,它提供了大量的预定义组件,如按钮、文本框、菜单等,方便开发者快速构建用户界面。在VS+Qt环境下,我们可以利用Qt Creator或者Visual Studio的扩展...

    Qt建立主窗口界面控制按钮调用两个独立ui界面

    标题中的“主窗口界面”通常指的是`MainWindow`类,这是Qt提供的一种标准窗口类,包含了菜单栏、工具栏和状态栏等基本元素。在创建主窗口时,我们需要继承`QMainWindow`并实现其构造函数,初始化窗口布局和组件。 ...

    Qt无标题窗口

    在本文中,我们将深入探讨如何使用Qt框架创建一个无标题窗口,这在界面设计和自定义标题栏美化中非常有用。我们将关注`framelesswidget.cpp`、`main.cpp`、`framelesswidget.h`等核心文件,理解它们在实现无标题窗口...

    Qt实现主窗口与子窗口切换的小demo

    demo主要采用信号与槽函数的方式对两个界面进行了不同切换,自定义...2.通过信号与槽在不同类中建立联系,在子类中定义信号发送信号,在主函数窗口使用,连接槽函数。代码比较基础适合初学者对基础知识的理解和消化。

    一个基于Qt的主窗口MainWindow

    本篇文章将深入探讨如何基于Qt的QMainWindow类创建一个具有菜单、工具栏和状态栏的一般功能主窗口界面。 首先,我们来看标题“一个基于Qt的主窗口MainWindow”。在Qt框架中,QMainWindow是设计复杂用户界面的基础类...

    Qt按钮菜单

    在Qt框架中,按钮菜单(通常称为上下文菜单或右键菜单)是用户界面中一个常见的功能,它允许用户通过单击按钮或者右键点击触发一个包含多个操作选项的菜单。这种设计使得用户能快速访问复杂的操作而不必占据屏幕空间...

    Qt无边框窗口最大化时拖拽还原代码

    需要注意的是,这个实现假设窗口的最大化和最小化操作都是通过系统菜单或快捷键触发的,如果用户通过自定义按钮进行最大化和还原,还需要相应地修改`changeEvent()`函数中的判断条件。 在实际开发中,可能还需要...

    QT自定义窗口 自由拖动 自定义标题

    首先,我们需要了解QT中的QMainWindow类,它是大多数QT应用程序的基础,提供了菜单、工具栏和状态栏等标准窗口元素。然而,为了自定义窗口,我们可能需要从QWidget或QDialog类开始,因为这些类提供了更基础的窗口...

    Qt编写多窗口程序实例

    在本文中,我们将深入探讨如何使用Qt框架来创建多窗口应用程序。Qt是一个强大的跨平台开发工具,支持多种操作系统,如Windows、Linux、macOS等。它提供了丰富的库和API,使得开发者可以方便地构建功能丰富的图形用户...

    qt包括菜单栏工具栏的小图标主窗口

    在本文中,我们将深入探讨如何在Qt环境中创建一个带有菜单栏和工具栏的主窗口,并实现菜单栏触发事件。Qt是一个强大的跨平台应用程序开发框架,广泛用于开发桌面、移动和嵌入式应用。这里我们使用的是Visual Studio ...

    Qt的无边框窗口 支持放大、缩小、拖拽 代码简单

    在实际项目中,可能还需要处理其他细节,比如窗口边缘的双击事件以最大化或恢复窗口,或者添加自定义菜单来实现窗口的操作。这些可以通过重写相应的事件处理器并调用`showMaximized()`、`showNormal()`等方法来完成...

    Qt下显示文件及目录的Windows右键菜单

    在编译和运行项目时,确保Qt的环境变量已经设置好,并且编译器支持Windows API调用。 总的来说,这个Qt工程实例展示了如何利用Qt和Windows API创建自定义的文件和目录右键菜单,提供了增强用户交互的一种方法。...

    Qt多级菜单

    通常,这个菜单可以添加到主窗口的菜单栏上,或者作为右键菜单的基础。 ```cpp QMenu *mainMenu = new QMenu("主菜单"); ``` 2. **创建QAction**:接着,为每个菜单项创建一个QAction实例,设置其文本、图标、...

    使用QT制作的主界面滑动窗口

    1. **QMainWindow**:这是QT5中的一个核心类,用于构建具有菜单栏、工具栏和状态栏的复杂窗口应用程序。在本项目中,QMainWindow是主界面的基础,它允许开发者添加自定义的布局和控件,以实现滑动效果。 2. **...

    qt+opengl 实现多窗口三维图形变换

    QMainWindow是Qt的主要窗口类,它提供菜单栏、工具栏、状态栏等功能。我们可以创建一个QMainWindow子类,并在其中添加两个QGLWidget子类实例作为中央部件,以此实现多窗口布局。 在项目中,"openglexmp"可能包含了...

    Qt菜单操作

    在Qt中,可以通过`QMainWindow`的`menuBar()`方法获取到主窗口的菜单栏,并在此基础上添加`QMenu`实例。例如: ```cpp QMainWindow mainWindow; QMenu *fileMenu = new QMenu(tr("&File")); // 创建文件菜单 ...

Global site tag (gtag.js) - Google Analytics