文档章节

Qt 的MainWindow类和控件基本使用

startstorm
 startstorm
发布于 2017/02/27 22:08
字数 322
阅读 66
收藏 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
浦东
程序员
Qt5开发及实例学习之停靠窗口QDockWidget类

Qt之停靠窗口QDockWidget类 设置停靠窗口的一般流程 1、创建一个QDockWidget对象的停靠窗口 2、设置此停靠窗体的属性,通常调用setFeatures()以及setAllowAreas()两种方法 3、新建一个要插入...

OceanStar
09/02
0
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
323
0
PyQt实现一个简单的License系统(二)

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

sagittarius_warrior
2017/06/01
0
0
Hello World - Linux上的 MeeGo x86 开发

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

长平狐
2013/01/11
48
0
Opencv配置方法汇总:Xcode/CLion/Qt

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

isee_nh
05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
2
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
14
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
5
0
Redis性能问题排查解决手册

一、性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。通过这些信息来分析文章后面提到的一些性能指标。 nfo命令输出的数据可...

IT--小哥
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部