查询建设工程规范的网站,电商app系统开发公司,郑州手机网站制作,大连制作网站公司一、QSplitter 类(窗口分割)
QSplitter类是一个Qt框架提供的基础窗口控件类#xff0c;用于分割窗口#xff0c;使得用户可以通过拖动分隔条来调节子窗口的大小。QSplitter在用户界面设计中非常常见#xff0c;经常用于划分窗口区域#xff0c;使得程序可以同时显示多个子…一、QSplitter 类(窗口分割)
QSplitter类是一个Qt框架提供的基础窗口控件类用于分割窗口使得用户可以通过拖动分隔条来调节子窗口的大小。QSplitter在用户界面设计中非常常见经常用于划分窗口区域使得程序可以同时显示多个子控件。
QSplitter类的主要特点包括
可以水平或垂直分割窗口区域可以通过拖动分隔条来调整子控件的大小可以在子控件之间添加小部件如按钮、标签、文本框等
QSplitter类是QWidget的子类因此它可以嵌套在其他QWidget中以实现更复杂的用户界面设计。开发者可以使用QSplitter类创建多个子控件并通过分隔条调整这些控件的相对大小以便在同一个窗口中显示多个控件。
QSplitter类提供了一些方便的方法和信号例如resize()方法、splitterMoved()信号等可以让开发者方便地管理和操作QSplitter控件。开发者可以在QSplitter的基础上进行二次开发以满足自己的需求或者使用已有的QSplitter控件以提高开发效率。
案例分析以实现下图示例 代码示例
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include QMainWindowclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();
};
#endif // MAINWINDOW_Hmain.cpp
#include mainwindow.h#include QApplicationint main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;// w.show();return a.exec();
}mainwindow.cpp
#include mainwindow.h#include QSplitter
#include QTextEditMainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{// 1拆分窗口分割窗口、分裂窗口布局QSplitter *spMainWindownew QSplitter(Qt::Horizontal,0);QTextEdit *txteditmainnew QTextEdit(左边主窗口,spMainWindow);// 2拆分右边部分窗口QSplitter *spRightnew QSplitter(Qt::Vertical,spMainWindow);QTextEdit *txteditupnew QTextEdit(右边上部分窗口,spRight);QTextEdit *txteditdownnew QTextEdit(右边下部分窗口,spRight);// 3QSplitter *sptestnew QSplitter(Qt::Vertical,spRight);QTextEdit *txtedittestnew QTextEdit(罗小白,sptest);// 4:QSplitter *sptestendnew QSplitter(Qt::Horizontal,spMainWindow);QTextEdit *txtedittestendnew QTextEdit(广东话事人,sptestend);spMainWindow-setWindowTitle(Splitter类拆分窗口测试);spMainWindow-show();}MainWindow::~MainWindow()
{
}
二、QDockWidget 类 (停靠窗口) QDockWidget 类是 Qt 框架中的一个窗口部件类可以用于创建具有可停靠属性的子窗口。它可以被放置在 QMainWindow 窗口中并且可以被用户动态地沿着主窗口的边缘移动或者可以被固定在主窗口中。 QDockWidget 类还提供了一些其他功能例如标题栏、关闭按钮、浮动按钮等。
使用 QDockWidget 类创建可停靠的子窗口非常简单只需要创建一个 QDockWidget 对象并将其添加到 QMainWindow 窗口中即可。下面是一个使用 QDockWidget 类创建可停靠子窗口的示例代码
QMainWindow* mainWindow new QMainWindow();
QDockWidget* dockWidget new QDockWidget(Dock Widget, mainWindow);
dockWidget-setWidget(new QWidget());
mainWindow-addDockWidget(Qt::RightDockWidgetArea, dockWidget);
在这个例子中我们首先创建了一个 QMainWindow 对象然后创建了一个 QDockWidget 对象并设置了其标题为 Dock Widget。接着我们将一个 QWidget 对象设置为 QDockWidget 对象的主窗口部件并将 QDockWidget 对象添加到 QMainWindow 窗口的右边缘。
最后需要注意的是QDockWidget 类还提供了一些其他的方法和信号例如 setAllowedAreas() 方法和 dockLocationChanged() 信号等可以用来控制可停靠子窗口的行为和状态。
案例分析以实现下图示例 代码示例
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include QMainWindowclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();public:void DockWidgetFunc();};
#endif // MAINWINDOW_Hmain.cpp
#include mainwindow.h#include QApplicationint main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}mainwindow.cpp
#include mainwindow.h#include QTextEdit
#include QDockWidgetMainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{DockWidgetFunc();}MainWindow::~MainWindow()
{
}void MainWindow::DockWidgetFunc()
{setWindowTitle(QDockWidget类停靠窗口测试.);QTextEdit *teditnew QTextEdit(this); // 定义QTextEdit对象作为主窗口tedit-setText(刘德华 吴彦祖);tedit-setAlignment(Qt::AlignCenter);setCentralWidget(tedit); //将编辑框控件设置为主窗口的中央窗体// 创建停靠窗口1QDockWidget *dw1new QDockWidget(停靠窗口一,this);dw1-setFeatures(QDockWidget::DockWidgetMovable); // 可移动特性dw1-setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);QTextEdit *qtedit1new QTextEdit();qtedit1-setText(刘德华Andy Lau1961年9月27日出生于香港新界大埔镇泰亨村华语影视男演员、歌手、制片人、作词人。1981年出演电影处女作《彩云曲》。1983年主演的武侠剧《神雕侠侣》在香港取得62点的收视纪录。1985年发行首张个人专辑《只知道此刻爱你》。1990年凭借专辑《可不可以》在歌坛获得关注同年主演爱情片《天若有情》。1994年获得十大劲歌金曲最受欢迎男歌星奖。1995年在央视春晚上演 ..);dw1-setWidget(qtedit1);addDockWidget(Qt::RightDockWidgetArea,dw1);// 创建停靠窗口2QDockWidget *dw2new QDockWidget(停靠窗口二,this);dw2-setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable); // 关闭 浮动QTextEdit *qtedit2new QTextEdit();qtedit2-setText(吴彦祖Daniel Wu1974年9月30日出生于美国旧金山华语影视男演员、导演、制片人毕业于美国俄勒冈大学。1998年因出演个人首部电影作品《美少年之恋》进入演艺圈同年凭借文艺片《玻璃之城》提名第18届香港电影金像奖最佳新演员 [1-2]。2001年主演文艺片《游园惊梦》 [3] 。2003年首次担任监制并主演了惊悚片《妖夜回廊》凭该片首次提名第40届台湾电影金马奖最佳男主角 [4] 。2004年因出演动作片《新警察故事》中关祖一角受到广泛关注并凭借该角色获得第41届台湾电影金马奖最佳男配角奖 [5] 。2005年凭借动作片《旺角黑夜》首次提名第24届香港电影金像奖最佳男主角。);dw2-setWidget(qtedit2);addDockWidget(Qt::RightDockWidgetArea,dw2);}