文档章节

Qt 的MainWindow类和控件基本使用

startstorm
 startstorm
发布于 2017/02/27 22:08
字数 322
阅读 59
收藏 0
点赞 0
评论 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
浦东
程序员
Qt学习笔记(3)——PushButton、RadioButton、CheckBox

Qt Creater中有6种Buttons控件,比Qt Designer 多了Command Link Button 和Button Box两种控件,其余4中类型的控件分别是QPushButton、QToolButton、QCheckBox、。它们的基本用法和Qt Design...

hippieZhou ⋅ 2014/10/26 ⋅ 1

QT4学习笔记 重新实现事件处理函数(Reimplementing Event Handlers)

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

长平狐 ⋅ 2012/06/12 ⋅ 0

PyQt实现一个简单的License系统(二)

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

sagittarius_warrior ⋅ 2017/06/01 ⋅ 0

Opencv配置方法汇总:Xcode/CLion/Qt

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

isee_nh ⋅ 05/24 ⋅ 0

Hello World - Linux上的 MeeGo x86 开发

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

长平狐 ⋅ 2013/01/11 ⋅ 0

一个简单粗暴的人脸认证标注工具的实现

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

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

PyQT5速成教程-2 Qt Designer介绍与入门

Qt Designer的介绍 在PyQt中编写UI界面可以直接通过代码来实现,也可以通过Qt Designer来完成。Qt Designer的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。Qt Desi...

养薛定谔的猫 ⋅ 06/04 ⋅ 0

QPainter学习(一)——绘制函数记录

目录 前言 需要用Qt显示视频,所以需要对了解。详细参见Qt之图形(QPainter的基本绘图) 函数介绍 绘图系统由完成具体的绘制操作,类提供了大量高度优化的函数来完成所需要的大部分工作。它可...

simonforfuture ⋅ 2017/12/13 ⋅ 0

Qt:多文档(MDI)文档处理软件思路01

文档处理软件是我们日常生活中最为常用的软件之一。在此以将记事本为例子,实现的基本思路描述。 一:基本外观功能。 1)有菜单栏和按钮,根据不同的实现功能,将按钮添加到菜单中,并且添加...

乔三爷 ⋅ 2015/04/11 ⋅ 0

QT事件过滤器

Qt事件模型一个真正强大的特色是一个QObject 的实例能够管理另一个QObject 实例的事件。 让我们试着设想已经有了一个CustomerInfoDialog的小部件。CustomerInfoDialog 包含一系列QLineEdit. ...

晨曦之光 ⋅ 2012/04/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Linux kernel脉络和主干总结

写在前面 前人常说,对Linux操作系统/内核的理解,是计算机行业从业者的内功,决定了你在技术领域想走多远。但内核的庞大以及学习曲线之陡峭,总让我在学习途中觉得犹如“管中窥豹”。 随着工...

Markz0928 ⋅ 27分钟前 ⋅ 0

在gcc中使用intel风格的内联汇编

很简单,内联汇编使用asm(“.intel_syntax noprefix/n”)声明一下,以后的内联汇编就可以用intel风格了,构建可执行文件时给gcc加上-masm=intel参数。 先写一个小程序测试一下: [cpp] view...

simpower ⋅ 37分钟前 ⋅ 0

NIO 之 ByteBuffer实现原理

相关文章 BIO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 Channel实现原理 前言 Java NIO 主要由下面3部分组成: Buffer Channel Selector 在传统IO中,流是基于字节的方式进行...

轨迹_ ⋅ 46分钟前 ⋅ 0

Jenkins docker权限问题

环境Ubuntu Server 工具 jenkins-war:2.89.2 报错信息 Cannot connect to the Docker daemon. Is the docker daemon running on this host?Build step 'Execute shell' marked build as fai......

Pulsar-V ⋅ 46分钟前 ⋅ 0

180621-一个简单的时间窗口设计与实现

如何设计一个计数的时间窗口 时间窗口,通常对于一些实时信息展示中用得比较多,比如维持一个五分钟的交易明细时间窗口,就需要记录当前时间,到五分钟之前的所有交易明细,而五分钟之前的数...

小灰灰Blog ⋅ 今天 ⋅ 0

Android之Dalvik、ART、JIT、AOT

Android之Dalvik、ART、JIT、AOT 本文内容:Dalvik、ART、JIT、AOT之间关系 本文定位:知识记录 学习过程记录,加深理解,提升文字组合表达能力。也希望能给学习的同学一些灵感 本文整理于[...

lichuangnk ⋅ 今天 ⋅ 0

Thrift RPC实战(五) thrift连接池

Thrift本身没有提供连接池,我们可以用Apache Commons Pool2来实现一个 一、定义对象工厂 BasePooledObjectFactory<T> extends BaseObject implements PooledObjectFactory<T> public class......

lemonLove ⋅ 今天 ⋅ 0

git 命令简写

简写 命令 g git gst git status gd git diff gdc git diff --cached gdv git diff -w "$@" | view - gl git pull gup git pull --rebase gp git push gc git commit -v gc! git commit -v ......

charley158 ⋅ 今天 ⋅ 0

Java中的锁使用与实现

1.Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。 在Lock出现之前,java程序是靠synchronized关键字实现锁功能的,而Java SE5之后,...

ZH-JSON ⋅ 今天 ⋅ 0

Intellij IDEA神器常用技巧四-类和方法注释模板设置

IDEA自带的注释模板不是太好用,我本人到网上搜集了很多资料系统的整理了一下制作了一份比较完整的模板来分享给大家,我不是专业玩博客的,写这篇文章只是为了让大家省事。 这里设置的注释模...

Mkeeper ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部