QT 5 初学1 多窗口切分-续

转载:omydocument

主窗口本身就带着菜单,工具栏,和状态栏,作为一个基本应用,这些都不用操心。

一个工具,需要把窗口切分成三部分,左边,右上,右下。左边显示选择的功能,右上是主窗口。右下作为状态窗口。

在上篇的基础上,采用系统窗口形式,不再在main上开窗口。也就是用桌面设计模式。

 1 #include "mainwindow.h"
 2 #include <QApplication>
 3 int main(int argc, char *argv[])
 4 {
 5     QApplication a(argc, argv);
 6     MainWindow w;
 7     w.show();
 8     return a.exec();
 9 }
10
11 #include <QTextEdit>
12 #include <QMdiSubWindow>
13 #include "mainwindow.h"
14 #include "ui_mainwindow.h"
15 MainWindow::MainWindow(QWidget *parent) :
16     QMainWindow(parent),
17     ui(new Ui::MainWindow)
18 {
19     ui->setupUi(this);
20     pSpliter       = new QSplitter(Qt::Horizontal,ui->centralWidget);
21     QTextEdit* pLeftEdt = new QTextEdit(pSpliter);
22     pLeftEdt->setText(QObject::tr("左窗口"));
23     pLeftEdt->setDisabled(false);
24     pSpliter_right = new QSplitter(Qt::Vertical, pSpliter);
25     pSpliter->setStretchFactor(0, 1);//两句设置左右两列的宽度比为1:4
26     pSpliter->setStretchFactor(1, 4);
27     pSpliter_right->setStretchFactor(0, 1);//两句设置上下的高度比为1:4
28     pSpliter_right->setStretchFactor(1, 4);
29     QTextEdit* pRightEdt1 = new QTextEdit(pSpliter_right);
30     pRightEdt1->setText(QObject::tr("右上窗口"));
31     pRightEdt1->setDisabled(true);
32     QTextEdit* pRightEdt2 = new QTextEdit(pSpliter_right);
33     pRightEdt2->setText(QObject::tr("右下窗口"));
34     pRightEdt2->setDisabled(true);
35     pSpliter->setWindowTitle(QObject::tr("切分窗口演示"));
36     pSpliter->show();
37 }
38 MainWindow::~MainWindow()
39 {
40     delete ui;
41 }

运行后,效果如下:

原文地址:https://www.cnblogs.com/fuqia/p/9061517.html

时间: 2024-10-24 11:43:59

QT 5 初学1 多窗口切分-续的相关文章

Qt无边框,可移动窗口

QPoint dragPosition;void MainWindow::mousePressEvent(QMouseEvent *event){if(event->button()==Qt::LeftButton){dragPosition=event->globalPos()-frameGeometry().topLeft();event->accept();}}void MainWindow::mouseMoveEvent(QMouseEvent *event){if(event-

qt如何实现一个渐隐窗口呢(开启的时候他是从上往下渐渐显示)

qt如何实现一个渐隐窗口呢?就是比如说开启的时候他是从上往下渐渐显示的,关闭的时候从下往上渐渐小时的http://stackoverflow.com/questions/19087822/how-to-make-qt-widgets-fade-in-or-fade-out Fade In Your Widget // w is your widget QGraphicsOpacityEffect *eff = new QGraphicsOpacityEffect(this); w->setGra

窗口切分

相关类: CSplitterWnd -父类CFrameWnd 1.窗口切分的分类 动态切分 -在程序运行过程中根据用户的需要实时完成切分,最多切出2*2个视图窗口,每个视图窗口显示内容相同 静态切分 -在窗口创建时就已经完成切分,每个切分出的视图窗口可显示不同内容. 2.静态切分 2.1定义CSplitterWnd类对象 2.2重写CFrameWnd::OnCreateClient虚函数, 利用CSplitterWnd::CreateStatic -创建不规则框架窗口 利用CSplitterWn

qt实现类似QQ伸缩窗口--鼠标事件应用

上一章节讲了qt鼠标事件实现,获取鼠标参数的方法.这一讲主要讲怎么应用上讲的鼠标事件实现一个小功能. qq好友对话框右侧 未展开时如图: 鼠标移动到 “隐藏侧边”处单击可以隐藏侧边,隐藏后效果如图: 实现的范例效果如下 1.一般情况 2.鼠标移动到中间分割线中间区域时,效果 3.单击红色按钮后,效果 4.鼠标移动到边界,效果 下面讲解实现过程:一般情况在QT中,这种伸缩窗体的实现有两种方法:一种是是直接用QSplitter分割器实现:另一种直接用布局管理器自己实现.本节用的是第二种方法实现的.布

2.关于QT中的Dialog(模态窗口),文件选择器,颜色选择器,字体选择器,消息提示窗口

 1 新建一个空项目 A 编写 .pro文件 QT += gui widgets HEADERS += \ MyDialog.h SOURCES += \ MyDialog.cpp B 编写MyDialog.h #ifndef MYDIALOG_H #define MYDIALOG_H #include <QDialog> class MyDialog:public QDialog { Q_OBJECT public: explicit MyDialog(QWidget *parent =

QT笔记之实现阴影窗口

方法一: 代码实现 重写void paintEvent(QPaintEvent *event); void QT_Test::paintEvent(QPaintEvent *event) { QPainterPath path; path.setFillRule(Qt::WindingFill); path.addRect(10, 10, this->width()-20, this->height()-20); QPainter painter(this); painter.setRende

QT 全屏显示子窗口

QT 中全屏显示子窗口的方法 QT 中窗口部件 QWidget 成员函数 showFullScreen();是用于将窗口部件全屏显示 但是他只对窗口模式的部件有用.子窗口的特征是 Qt::SubWindow不是独立的窗 口.因此对其调用 showFullScreen无效.通过对子窗口调用setWindowFlags Qt: :Dialog或 setWindowFlagsQt::Window将其设为窗口模式后即可 调用 showFullScreen();进行全屏显示了. 相对于子窗口的全屏显示方法

Qt之布局管理——停靠窗口

QDockWidget类继承与QWidget类,用于停靠窗口的管理.在主窗口中,先设置中心控件,然后实例化QDockWidget对象,通过setFeatures( )设置停靠窗口的窗体特性,通过 setAllowedAreas(  )设置窗体可停靠的区域.具体如下: void setFeatures(DockWidgetFeatures features ) QDockWidget::DockWidgetClosable 停靠窗可关闭 QDockWidget::DockWidgetMovable

QT添加程序图标及窗口图标

程序图标 材料准备 图标文件:*.ico文件,存放在源文件同一目录下,如"myapp.ico" 写入图标 向*.pro文件中,独立一行写入"RC_ICONS = *.ico",如RC_ICONS = "myapp.ico" 生成程序 运行程序,即可在程序目录下看到带有图标的软件 PS:还有一种使用rc文件的方法,有一篇博文写的挺详尽的了,此处不再累赘,可参考Qt笔记——三步设置Qt应用程序图标. 更多程序图标添加方式,可在帮助中输入"S