文档章节

Qt 的MainWindow类和控件基本使用

startstorm
 startstorm
发布于 2017/02/27 22:08
字数 322
阅读 61
收藏 0

在pro文件中添加

CONFIG += C++11

mainwindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
};
#endif // MAINWINDOW_H

mainwindow.cpp文件

#include "mainwindow.h"
#include <QMenuBar>         //菜单栏
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QToolBar>         //工具栏
#include <QPushButton>
#include <QStatusBar>       //状态栏
#include <QLabel>
#include <QTextEdit>        //文本编辑区
#include <QDockWidget>      //浮动窗口
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //菜单栏
    QMenuBar *mBar = menuBar();

    //添加菜单
    QMenu *pFile = mBar->addMenu("文件");

    //添加菜单项,添加动作
    QAction *pNew = pFile->addAction("新建");

    connect(pNew,&QAction::triggered,
            [=]()
            {
              qDebug() << "新建被按下";
            }

            );

    pFile->addSeparator();//添加分割线
    QAction *pOpen = pFile->addAction("打开");

    //工具栏 菜单的快捷方式
    QToolBar *toolBar = addToolBar("tooBar");

    //工具栏添加快捷键
    toolBar->addAction(pNew);


    QPushButton *b = new QPushButton(this);
    b->setText("?-?");
    //添加小控件
    toolBar->addWidget(b);

    connect(b,&QPushButton::clicked,
            [=]()
            {
              b->setText("123");
            }

            );
    //状态栏
    QStatusBar *sBar = statusBar();
    QLabel *label = new QLabel(this);
    label->setText("normal text file");
    sBar->addWidget(label);
    //addWidget从左往右添加
    sBar->addWidget(new QLabel("123",this));
    //addpermanentwidget从右往左添加
    sBar->addPermanentWidget(new QLabel("000",this));

    //核心控件
    QTextEdit *textedit = new QTextEdit(this);
    setCentralWidget(textedit);

    //浮动窗口
    QDockWidget *dock = new QDockWidget(this);
    addDockWidget(Qt::RightDockWidgetArea,dock);
    //给浮动窗口添加控件
    QTextEdit *textedit1 = new QTextEdit(this);
    dock->setWidget(textedit1);
}

MainWindow::~MainWindow()
{

}

main.cpp文件

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

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

    return a.exec();
}

运行结果图,点击按钮,按钮上的文字会变成123.

© 著作权归作者所有

共有 人打赏支持
startstorm
粉丝 6
博文 53
码字总数 21034
作品 0
浦东
程序员
QT4学习笔记 重新实现事件处理函数(Reimplementing Event Handlers)

http://hi.baidu.com/changfa1999/blog/item/a4f75a7ad06fcae82f73b3b4.html 7.1 重新实现事件处理函数(Reimplementing Event Handlers) 在Qt中,一个事件是QEvent的子类的对象。Qt能够处理上......

长平狐
2012/06/12
323
0
PyQt实现一个简单的License系统(二)

本文接着上一篇继续讲解“PyQt实现一个简单的License系统”,主要包括: 3)如何用python创建一个GUI。 4)python如何调C DLL库。 5)ctypes中类型处理。 上一篇文章只是简单的将ui文件转换为...

sagittarius_warrior
2017/06/01
0
0
Opencv配置方法汇总:Xcode/CLion/Qt

Opencv版本3.4.1 重复的基本步骤我会给出网上各位大神的链接,下面是我自己遇到的一些特殊问题(网上又很难找到)的汇总,希望对你有帮助! 我自己的opencv是通过CMake编译安装的。 Xcode: ...

isee_nh
05/24
0
0
Hello World - Linux上的 MeeGo x86 开发

介绍 这个教程介绍了Linux下的 MeeGo x86 开发。教程解说了基本的开发流程,重点介绍了如何使用SDK附带的那些工具。 教程不会涉及一些开发细节,例如 Qt 和 MeeGo 的 API、或是如何将程序整合...

长平狐
2013/01/11
48
0
一个简单粗暴的人脸认证标注工具的实现

原文出处:miao,2017-01-01 小喵的唠叨话:话说最近小喵也要开始写论文了,想了两周还是没有头绪,不知道该写些什么。恰好又被分配了一点标注数据的工作,于是乎想写点代码,休闲一下。结果...

miao,2017-01-01
2017/01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

es6

在实际开发中,我们有时需要知道对象的所有属性,原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组 传入对象,返回属性名 var obj = {'a':'123','b':'345'};console.l...

不负好时光
12分钟前
0
0
叮!您收到一份超值Java基础入门资料!

摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例...

全部原谅
14分钟前
0
0
web.xml容器加载顺序

容器对于web.xml的加载过程是context-param >> listener >> fileter >> servlet

Aeroever
16分钟前
1
0
Docker容器日志查看与清理

1. 问题 docker容器日志导致主机磁盘空间满了。docker logs -f container_name噼里啪啦一大堆,很占用空间,不用的日志可以清理掉了。 2. 解决方法 2.1 找出Docker容器日志 在linux上,容器日...

muzi1994
17分钟前
0
0
J2Cache 和普通缓存框架有何不同,它解决了什么问题?

不少人看到 J2Cache 第一眼时,会认为这就是一个普普通通的缓存框架,和例如 Ehcache、Caffeine 、Spring Cache 之类的项目没什么区别,无非是造了一个新的轮子而已。事实上完全不是一回事!...

红薯
19分钟前
414
12

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部